Tag: 迭代

反转范围会导致不匹配的types

我想使用一个variables来保存通常是某个范围的东西,例如Range<Int> ,这样我就可以使用条件逻辑来改变循环的范围而不需要复制/粘贴for循环。 例如: let range = aNumber % 2 == 0 ? 0..<10 : (0..<10).reverse() for i in range { /* for loop logic */ } 行let range = …将导致错误: Result values in '? :' expression have mismatching types 'Range<Int>' and 'ReverseRandomAccessCollection<Range(Int)' Result values in '? :' expression have mismatching types 'Range<Int>' and 'ReverseRandomAccessCollection<Range(Int)' 。 […]

在Swift 2.2+中使用AnyGenerator(“for in”循环支持自定义类)

以前我使用下面的函数来使我的自定义类符合SequenceType协议: func generate() -> AnyGenerator<UInt32> { var nextIndex = 0 return anyGenerator { if (nextIndex > self.scalarArray.count-1) { return nil } return self.scalarArray[nextIndex++] } } 这与接受的这两个问题的答案类似。 添加“for in”支持来遍历Swift自定义类 在Swift 2中添加'for … in'支持类 但是在Swift 2.2更新之后… “++”已被弃用:它将在Swift 3中被删除 func generate() -> AnyGenerator<UInt32> { var nextIndex = 0 return AnyGenerator { if (nextIndex > self.scalarArray.count-1) { return nil […]