【发布时间】:2016-02-05 09:25:22
【问题描述】:
我想使用一个变量来保存通常是某个范围的东西,例如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)'。我猜想反转范围会导致相同类型的范围或至少是协议或两个值都继承/实现的东西,所以我可以声明let range: SomeType = ...。不过,我还没有找到。有什么想法吗?
【问题讨论】:
标签: ios swift for-loop iterable type-mismatch