Rust 中常使用「移動 (move)」語意,為使複製成本降低,大部分的函式會採用 pass-by-reference 的方式 &T
,但是移動語意的好處在於可以提前刪除物件。
標準庫提供的 enum 類型 {std, alloc}::borrow::Cow
同時允許「借出的 (Borrowed)」與「擁有的 (Owned)」兩種資料型態,並且會在借出可變引用 &mut T
時複製,亦可單純借出唯讀引用。
pub enum Cow<'a, B>
where
B: 'a + ToOwned + ?Sized,