1. Swift Comparable, IndexableBase, Indexable

1. Comparable

IndexableBase主要是操作下标的,列如常见的就是以整形为下标的数组。在这个协议里面的变量Index遵守Comparable协议。
这个Comparable是个什么协议呢?从图中可以看到Comparable定义了5个比较方法,也就是我们常见的==<<=>=>

Comparable协议

2. IndexableBase, Indexable

这两个协议主要定义了返回部分数据下标的函数 比如第几个元素,从哪里到哪里取几个元素等。


IndexableBase, Indexable协议结构

总结:


集合类的下标一般是常正型(我们也可以使用其他类型,比如A、B、C、D... ),在对下标进行比较的时候我们就会用到比较类的方法,因此Index遵守Comparable协议是为了进行下标间的比较。(如果要使用其他类型,下标间的比较规则则需要自己重写)

IndexableBase, Indexable 主要是对单个下标或者下标的某个区间做操作,比如返回某个下标, 返回某几个连续下标的区间。

推荐阅读更多精彩内容