Rust 中有 AsRef<T> 的简写吗?

gxt*_*lon 3 string reference type-parameter rust

AsRef 有糖吗?最好是在稳定频道。

我经常使用 as ref 声明类似字符串的参数,以便更容易与字符串的各种咒语(String、&str、&String 等)进行互操作,如下所示:

fn Fun<S: AsRef<str>>(my: S) { ... my.as_ref() ...} 
Run Code Online (Sandbox Code Playgroud)

然而,现在在一段时间后回读这些实现,它在视觉上占用了代码中比我认为应该的更多的空间,有没有办法减少使用量?例如,不必显式声明类型参数,不必显式调用 as_ref() 等。

看看这个备忘单这本书文档并没有表明存在。

最好的。

the*_*472 7

您可以声明一个特征别名(需要每晚)和/或使用impl 特征

trait AsStr = AsRef<str>;


fn my_func(arg: impl AsStr) {

  arg.as_ref() ...

}
Run Code Online (Sandbox Code Playgroud)