如果我有两个未知值,比方说 x
和 y
,最好的方法是遍历所有 between 之间的值那些值(value)观?
例如,给定值 x = 0
和 y = 5
我想用值 0、1、2、3、4 和5. 如果这样更简单,结果可以排除 0 和 5。
使用 Swift 的范围运算符,我可以做这样的事情:
for i in x...y {
// Do something with i
}
除非我不知道 x
或 y
哪个值更大。
Swift documentation对于范围运算符状态:
The closed range operator (
a...b
) defines a range that runs froma
tob
, and includes the valuesa
andb
. The value ofa
must not be greater thanb
.
这里有很多解决方案。一个非常简单的方法是:
let diff = y - x
for i in 0...abs(diff) {
let value = min(x, y) + i
// Do something with value
}
是否有更好或更优雅的方法来实现这一点?
最佳答案
我想最明确的写法是:
for i in min(a, b)...max(a, b) {
// Do something with i
}
要排除第一个和最后一个值,您可以增加下限并使用 Swift ..<
语法:
let lowerLimit = min(a, b) + 1
let upperLimit = max(a, b)
for i in lowerLimit..<upperLimit {
// Do something with i
}
关于ios - 具有两个未知值的 Swift 范围运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36719196/