ide*_*n42 2 copy-on-write rust
移动API使用时Cow<[sometype]>,必须更换:
some_func(arg1, arg2, arg3);
Run Code Online (Sandbox Code Playgroud)
附:
some_func(Cow::from(&arg1[..]), Cow::from(&arg2[..]), Cow::from(&arg3[..]));
Run Code Online (Sandbox Code Playgroud)
语法相当密集.
Cow当作为函数参数传递时,是否有一种方法可以将向量或切片强制转换为它们的等价物?
可能有充分的理由不这样做,例如,如果您多次对函数使用相同的参数,则显式语法是提示Cow<[]>应该为版本分配变量并保留.但是,我很想知道这是否可行.
的Into特点是你想要的.声明函数以获取Into<Cow<'a, [T]>>并调用函数中的into()方法:
use std::borrow::Cow;
fn foo<'a, T: Into<Cow<'a, [u8]>>>(v: T) {
let x = v.into();
println!("{:?}", x);
}
fn main() {
let v = vec![0,1,2];
let s = &[3,4,5];
foo(v);
foo(&s[..]);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
183 次 |
| 最近记录: |