swift 3中的模数运算符(%)是多少?

时间:2016-10-27 20:06:01

标签: swift3 modulus

我有这一行:

randomIndex = Int(drand48() % Double(alphabetColors.count))

Xcode 8(Swift 3)告诉我:

'%' is unavailable: Use truncatingRemainder instead

再也没有操作员了吗?我该如何转换我的代码?

5 个答案:

答案 0 :(得分:29)

enter image description here

这似乎适用于我,目前在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。