我想为Dictionary<Hashable, RangeReplaceableCollection>
添加一个扩展名,该扩展名将仅为RangeReplaceableCollection where RangeReplaceableCollection.Element is Value type
添加一些功能
我想附加一个集合值,该集合是字典中的一个值-基本上来自here。正如评论中指出的那样,这样做的方法更短。可以使用dict[key, default: value]
将具有默认值的字典追加到字典中,尽管字典文档中有一个注释:
如果字典的“值”类型为类,则不要使用此下标来修改字典值。在这种情况下,默认值和键在操作后不会写回到字典中。
因此,实现我的扩展的天真的方法是这样的:
extension Dictionary
where Value: RangeReplaceableCollection
where RangeReplaceableCollection.Element is ValueType {
我想知道是否有可能实现这样的目标(如果可以,那么如何?)。
我还考虑过类似的事情:
protocol ValueRangeReplaceableCollection : RangeReplaceableCollection where RangeReplaceableCollection.Element: Int {}
以后将其用作价值限制,但我想不出一种适当的方法。
对此我将不胜感激。
编辑:我了解您可以仅从要点使用扩展名,而不必关心值/引用类型。我的问题更多是关于Swift泛型。