swift - 正确的 swift 2.2 语法和 for 循环

标签 swift loops for-loop

<分区>

我在 swift(2.2) 中编写了以下代码:

for var i = 2; sqrt(Double(num)) >= Double(i); i += 1 {.....}

但是,我不断收到一条警告消息,内容为“c-style for statement is deprecated and will be removed in future version of swift”。

那么,编写相同循环的正确方法是“Swift 风格”吗?将 num 的值转换为 double 会给我带来“Swift 风格”的错误。有什么建议吗?

谢谢。

最佳答案

您可以使用 for-in 结构重构已弃用的 C 风格 for 循环

for i in 2...Int(sqrt(Double(num))) { }

但是,如果您真的想要必要的,请尝试定义此运算符以找到四舍五入到最接近的 int 的 int 的平方根

prefix operator √ {}
prefix func √ (number: Int) -> Int {
     return Int(sqrt(Double(number)))
}

现在你可以这样写你的for循环了

for i in 2...(√num) { }

关于swift - 正确的 swift 2.2 语法和 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37288767/

相关文章:

algorithm - 使用 for 循环递增值时计算 n 的值

java - 长循环计数器似乎效率很低

swift - podspec JSQMessagesViewController 非模块化 header

c++ - LLVM 在 std::vector 中存储 Loop*

javascript - 在 Google Apps 脚本中循环数组

javascript - 循环访问 classList 时无法编辑它

java - 使用 for 循环搜索值和

swift - 获取放置的 SCNNode 的世界 x、y 和 z - Swift

ios - Alamofire 请求和自定义 NSURLRequest 的区别

swift - 在哪里?在 Swift 中进行条件转换?