Swift的for...in可以用在所有实现了SequenceType的类型上,而为了实现SequenceType你首先需要实现一个GeneratorType。比如一个实现了反向的generator和sequence可以这么写:
输出为:
如果想要深究for...in这样的方法到底做了什么,就将其展开,大概会是下面这样:
顺便可以得到的收益是你可以使用像map、filter和reduce这些方法,因为SequenceType接口扩展(protocol extension)已经实现了它们: ZIvpcw+ILCBvtB1Wtz2wDCm4+HXyVrmvKFgxyCnH9SXoL5+24OlvgJ8tWvpSzgPX