Dav*_*les 14 iteration control-flow swift
根据Swift语言指南中的控制流部分,
所述
for-in
循环执行一组用于在一个范围,序列,集合,或进展的每个项目的语句.
我很确定我知道其中有三个是:
...
或..<
SequenceType
协议的东西(文档不是很明显,但各种人都对它进行了逆向工程)Array
和Dictionary
(我注意到#3可能是多余的,Array
并Dictionary
似乎都符合SequenceType
.)
但是什么是"进展"?这是第四件事,还是作家只是罗嗦?
ETA:我也看到了一个CollectionType
协议,所以解释了#3.
除了for-in文档之外,我首先提到的"进展"是在swift框架的注释中定义了stride方法.
func stride<T : Strideable>(from start: T, to end: T, by stride: T.Stride) -> StrideTo<T>
Run Code Online (Sandbox Code Playgroud)
返回值的序列(
start
,start + stride
,start + stride + stride
,... 最后),其中最后一个是在小于进展的最后一个值end
.
func stride<T : Strideable>(from start: T, through end: T, by stride: T.Stride) -> StrideThrough<T>
Run Code Online (Sandbox Code Playgroud)
返回值的序列(
start
,start + stride
,start + stride + stride
,... 最后),其中最后是在进展小于或等于最后值end
.注意::不保证end
是序列的元素.
简而言之,"进展"指的是Strideable
类似于"集合"如何指代CollectionType
协议以及符合它的类和结构的协议.
数字类型(Int,Double,Float,UnsafePointer,Bit等)倾向于符合此协议,因此它们可以针对for in
循环递增/递减.此处Strideable
找到的协议的完整继承图.
归档时间: |
|
查看次数: |
989 次 |
最近记录: |