繁体   English   中英

是否有 AsRef 的简写<t>在 Rust 中?</t>

[英]Is there a shorthand for AsRef<T> in Rust?

AsRef 有糖吗?

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

fn Fun<S: AsRef<str>>(my: S) { ... my.as_ref() ...} 

但是现在在一段时间后回读这些实现,它在代码中占用的空间比我认为的要多,有没有办法缩小使用量? 例如,不必显式声明类型参数,不必显式调用 as_ref() 等。

看看这个备忘单, 这本书文档并没有暗示有。

最好的。

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

trait AsStr = AsRef<str>;


fn my_func(arg: impl AsStr) {

  arg.as_ref() ...

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM