代码点读机 / Rust / AsRef

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 只做借用转换,不转移所有权

官方文档:https://doc.rust-lang.org/std/convert/trait.AsRef.html

在代码里遇到不认识的词?打开代码点读机,点一下就懂 → ← Rust全部词条