簡體   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