Cow
:Copy on Write,只有在发生修改数据的情况下才进行复制。
类型为智能指针的 emun
,取值有两种
- Borrowed,对原始数据的引用
- Owned,对数据有所有权
let arr: Vec<i32> = vec![1, 2, 3];
// 此时为 arr 的引用
let mut arr_borrowed: Cow<[i32]> = Cow::from(arr); // Borrowed
获得智能指针内部数据的可变引用,进行修改
// 修改前对原始数据进行复制,enum类型改变
arr_borrowed.to_mut()[0] = 1; // Owned
也可以一开始就创建拥有所有权的数据
let arr_owned: Cow<[i32]> = Cow::from(vec![1, 2, 3]); // Owned
标签:Borrowed,mut,arr,Cow,Owned,let,使用,Rust
From: https://www.cnblogs.com/guo-shou/p/17172059.html