ios - 具有两个未知值的 Swift 范围运算符

标签 ios swift loops

如果我有两个未知值,比方说 xy,最好的方法是遍历所有 between 之间的值那些值(value)观?

例如,给定值 x = 0y = 5 我想用值 0、1、2、3、4 和5. 如果这样更简单,结果可以排除 0 和 5。

使用 Swift 的范围运算符,我可以做这样的事情:

for i in x...y {
    // Do something with i
}

除非我不知道 xy 哪个值更大。

Swift documentation对于范围运算符状态:

The closed range operator (a...b) defines a range that runs from a to b, and includes the values a and b. The value of a must not be greater than b.

这里有很多解决方案。一个非常简单的方法是:

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/

相关文章:

iOS Facebook token 权限生日

iphone - 右侧的 UITableView 部分标题而不是左侧的默认值

ios - 无法在 iTunes connect 中请求新契约(Contract)(适用于 iOS 付费应用程序)

ios - 将图像设置为全局变量(在 Swift 中)

ios - 容器 View - 没有导出可能

azure - 执行直到Azure逻辑应用程序中的条件无法按预期工作

iphone - 如何检查是否从 iPhone 上的网页安装了应用程序

ios - 快速保存到本地存储

javascript - 定时器循环永远不会运行

Python:如何在无限循环运行时从控制台获取输入?