约束条件下的Swift通用集合的压缩

伊坦

我有一个对通用集合进行操作的函数:

func foo<T: RangeReplaceableCollection>(_ bar: T) 
     where T.Iterator.Element == UInt8
{
    //
}

然后,该函数访问该集合的子范围,因此它需要其他约束:

func foo<T: RangeReplaceableCollection>(_ bar: T) 
     where T.Iterator.Element == UInt8,
           T.SubSequence: RangeReplaceableCollection,
           T.SubSequence.Iterator.Element == T.Iterator.Element
{
    //
}

它还调用本身在集合的子范围的子范围上操作的函数,因此它需要更多的约束:

func foo<T: RangeReplaceableCollection>(_ bar: T) 
     where T.Iterator.Element == UInt8,
           T.SubSequence: RangeReplaceableCollection,
           T.SubSequence.Iterator.Element == T.Iterator.Element,
           T.SubSequence.SubSequence: RangeReplaceableCollection,
           T.SubSequence.SubSequence.Iterator.Element == 
               T.SubSequence.Iterator.Element
{
    //
}
  • 有什么办法可以清理吗?

  • 是否至少有一种方法可以将所有where子句隐藏在a后面typealias

  • 如果没有,是否有解决此问题的建议?

马丁·R

集合子序列不必与集合本身具有相同的类型,但就我所知,对于标准库中定义的所有集合,子序列的子序列与子序列本身具有相同的类型。因此,一个额外的约束

    T.SubSequence.SubSequence == T.SubSequence

应该解决任意嵌套子序列的问题:

func foo<T: RangeReplaceableCollection>(_ bar: T)
    where T.Iterator.Element == UInt8,
    T.SubSequence: RangeReplaceableCollection,
    T.SubSequence.Iterator.Element == T.Iterator.Element,
    T.SubSequence.SubSequence == T.SubSequence
{
   // ...
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

约束条件下的优化

来自分类Dev

每个约束条件下变量的总系数

来自分类Dev

添加子视图并以编程方式将其置于约束条件下

来自分类Dev

按约束条件过滤

来自分类Dev

按约束条件过滤

来自分类Dev

iOS“无法同时满足约束条件”

来自分类Dev

从Objective-C转换为Swift之后,无法同时满足约束条件

来自分类Dev

条件下的Project Mongo集合数组值

来自分类Dev

Swift:通用集合的集合

来自分类Dev

Swift:通用集合的集合

来自分类Dev

IFDEF在if条件下

来自分类Dev

在 IF 条件下挣扎

来自分类Dev

我可以忽略“无法同时满足约束条件”吗?

来自分类Dev

无法构造“ RTCPeerConnection”:约束条件无法满足IceTransports

来自分类Dev

根据1个以上的约束条件生成日期

来自分类Dev

遵循特定约束条件计算排列

来自分类Dev

SciPy Optimizer提供的结果不满足约束条件

来自分类Dev

调试时“无法同时满足约束条件”

来自分类Dev

有约束条件的求和公式中的动态范围

来自分类Dev

具有多个唯一约束条件的分组

来自分类Dev

无法构造“ RTCPeerConnection”:约束条件无法满足IceTransports

来自分类Dev

具有约束条件的列表的排列python

来自分类Dev

对满足约束条件的值进行计数,对于SPARQL中不满足约束条件的值返回0

来自分类Dev

对满足约束条件的值进行计数,对于SPARQL中不满足约束条件的值返回0

来自分类Dev

OS X:“无法同时满足约束条件”只有一个无法满足的约束条件

来自分类Dev

尽管满足所有约束条件,为什么我不能将List <T>传递给通用构造函数参数?

来自分类Dev

如何在给定条件下获得R中所有组合的集合?

来自分类Dev

在IN条件下使用Order By

来自分类Dev

IF条件下的NULLS计数

Related 相关文章

  1. 1

    约束条件下的优化

  2. 2

    每个约束条件下变量的总系数

  3. 3

    添加子视图并以编程方式将其置于约束条件下

  4. 4

    按约束条件过滤

  5. 5

    按约束条件过滤

  6. 6

    iOS“无法同时满足约束条件”

  7. 7

    从Objective-C转换为Swift之后,无法同时满足约束条件

  8. 8

    条件下的Project Mongo集合数组值

  9. 9

    Swift:通用集合的集合

  10. 10

    Swift:通用集合的集合

  11. 11

    IFDEF在if条件下

  12. 12

    在 IF 条件下挣扎

  13. 13

    我可以忽略“无法同时满足约束条件”吗?

  14. 14

    无法构造“ RTCPeerConnection”:约束条件无法满足IceTransports

  15. 15

    根据1个以上的约束条件生成日期

  16. 16

    遵循特定约束条件计算排列

  17. 17

    SciPy Optimizer提供的结果不满足约束条件

  18. 18

    调试时“无法同时满足约束条件”

  19. 19

    有约束条件的求和公式中的动态范围

  20. 20

    具有多个唯一约束条件的分组

  21. 21

    无法构造“ RTCPeerConnection”:约束条件无法满足IceTransports

  22. 22

    具有约束条件的列表的排列python

  23. 23

    对满足约束条件的值进行计数,对于SPARQL中不满足约束条件的值返回0

  24. 24

    对满足约束条件的值进行计数,对于SPARQL中不满足约束条件的值返回0

  25. 25

    OS X:“无法同时满足约束条件”只有一个无法满足的约束条件

  26. 26

    尽管满足所有约束条件,为什么我不能将List <T>传递给通用构造函数参数?

  27. 27

    如何在给定条件下获得R中所有组合的集合?

  28. 28

    在IN条件下使用Order By

  29. 29

    IF条件下的NULLS计数

热门标签

归档