什么时候使用关联类型和通用类型比较合适?

在这个问题中,出现了一个问题,可以通过将使用通用类型参数的尝试更改为关联类型来解决。这提示了一个问题“为什么关联类型在这里更合适?”,这使我想知道更多。


引入关联类型的RFC表示:


该RFC通过以下方式阐明了特征匹配:


将所有特征类型参数视为输入类型,以及

提供关联的类型,它们是输出类型。

RFC使用图结构作为激励示例,并且在文档中也使用了图结构,但我承认,与类型参数化版本相比,我不完全意识到关联类型版本的好处。最主要的是,该distance方法不需要关心Edge类型。很好,但是似乎根本没有关联类型的原因。


我发现关联类型在实践中使用起来非常直观,但是当我决定在自己的API中何时何地使用它们时,我发现自己很挣扎。


在编写代码时,何时应在泛型类型参数上选择关联的类型,何时应相反?



白衣染霜花
浏览 304回答 3
3回答

阿晨1998

让我尝试简化一下:&nbsp;trait/struct MyTrait/MyStruct允许恰好一个impl MyTrait for或impl MyStruct。&nbsp;trait MyTrait<Return>允许多个,impl因为它是通用的。Return可以是任何类型。通用结构是相同的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Html5