AsRef Rust · 常用Trait
廉价借用转换 Trait,把类型转换成另一种类型的引用,常用于让函数接受多种相似类型。
怎么用
fn 函数<T: AsRef<U>>(x: T) 或 impl AsRef<U>,用于泛化引用参数
小例子
fn 长度(s: impl AsRef<str>) -> usize {
s.as_ref().len()
}
println!("{} {}", 长度("hello"), 长度(String::from("world")));
运行结果
5 5
提醒:AsRef 只做借用转换,不转移所有权
在代码里遇到不认识的词?打开代码点读机,点一下就懂 → ← Rust全部词条