在这个问题中,出现了一个问题,可以通过将使用通用类型参数的尝试更改为关联类型来解决。这提示了一个问题“为什么关联类型在这里更合适?”,这使我想知道更多。引入关联类型的RFC表示:该RFC通过以下方式阐明了特征匹配:将所有特征类型参数视为输入类型,以及提供关联的类型,它们是输出类型。RFC使用图结构作为激励示例,并且在文档中也使用了图结构,但我承认,与类型参数化版本相比,我不完全意识到关联类型版本的好处。最主要的是,该distance方法不需要关心Edge类型。很好,但是似乎根本没有关联类型的原因。我发现关联类型在实践中使用起来非常直观,但是当我决定在自己的API中何时何地使用它们时,我发现自己很挣扎。在编写代码时,何时应在泛型类型参数上选择关联的类型,何时应相反?
3 回答
阿晨1998
TA贡献2037条经验 获得超6个赞
让我尝试简化一下: trait/struct MyTrait/MyStruct
允许恰好一个impl MyTrait for
或impl MyStruct
。 trait MyTrait<Return>
允许多个,impl
因为它是通用的。Return
可以是任何类型。通用结构是相同的。
- 3 回答
- 0 关注
- 303 浏览
添加回答
举报
0/150
提交
取消