在這個問題中,出現了一個問題,可以通過將使用通用類型參數的嘗試更改為關聯類型來解決。這提示了一個問題“為什么關聯類型在這里更合適?”,這使我想知道更多。引入關聯類型的RFC表示:該RFC通過以下方式闡明了特征匹配:將所有特征類型參數視為輸入類型,以及提供關聯的類型,它們是輸出類型。RFC使用圖結構作為激勵示例,并且在文檔中也使用了圖結構,但我承認,與類型參數化版本相比,我不完全意識到關聯類型版本的好處。最主要的是,該distance方法不需要關心Edge類型。很好,但是似乎根本沒有關聯類型的原因。我發現關聯類型在實踐中使用起來非常直觀,但是當我決定在自己的API中何時何地使用它們時,我發現自己很掙扎。在編寫代碼時,何時應在泛型類型參數上選擇關聯的類型,何時應相反?
3 回答

鳳凰求蠱
TA貢獻1825條經驗 獲得超4個贊
讓我嘗試簡化一下: trait/struct MyTrait/MyStruct
允許恰好一個impl MyTrait for
或impl MyStruct
。 trait MyTrait<Return>
允許多個,impl
因為它是通用的。Return
可以是任何類型。通用結構是相同的。
- 3 回答
- 0 關注
- 738 瀏覽
添加回答
舉報
0/150
提交
取消