我有这一行:
randomIndex = Int(drand48() % Double(alphabetColors.count))
Xcode 8(Swift 3)告诉我:
'%' is unavailable: Use truncatingRemainder instead
再也没有操作员了吗?我该如何转换我的代码?
答案 0 :(得分:29)
这似乎适用于我,目前在Swift 3.1上,所以有可能将它添加回来。
我的猜测是,它在基金会的某个地方需要一个明确的import Foundation
<强>更新强>
仅适用于Int类型。似乎对于双打,需要截断余数。
答案 1 :(得分:28)
您只需按照诊断信息:
Page Two - The Revenge Of The Coder
HTTPS://www.batalabs.tk/otherpage2.html
Hello, this file doesn't matter. At all. It is a dummy.
或者使用let randomIndex = Int(drand48().truncatingRemainder(dividingBy: Double(alphabetColors.count)))
将是更好的选择。
arc4random_uniform(_:)
答案 2 :(得分:4)
根据新的Guideline Swift 5,它已更改
value.truncatingRemainder(dividingBy: 2)
答案 3 :(得分:2)
在mod之前将变量发布为Int
示例
let result = Int(value) % 3
答案 4 :(得分:0)
使用https://developer.apple.com/documentation/swift/double/2884269-remainder
如果您使用truncatingRemainder(如其他注释中所述),则它将首先降低该值,这意味着3.14将变为3。