迅速。使用where子句的层次结构进行扩展

时间:2019-02-27 14:17:11

标签: swift

我想为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泛型。

0 个答案:

没有答案