swift3 - operator - ¿Cuál es el operador de módulo(%) en swift 3?
swift 4 operators (4)
Convierte tu variable a Int
antes de mod
ejemplo
let result = Int(value) % 3
Tengo esta linea
randomIndex = Int(drand48() % Double(alphabetColors.count))
Y Xcode 8 (Swift 3) me dice:
''%'' is unavailable: Use truncatingRemainder instead
¿Ya no hay operador? ¿Cómo debo convertir mi código?
Simplemente puede seguir el mensaje de diagnóstico:
let randomIndex = Int(drand48().truncatingRemainder(dividingBy: Double(alphabetColors.count)))
O usar arc4random_uniform(_:)
sería una mejor alternativa.
let randomIndex = Int(arc4random_uniform(UInt32(alphabetColors.count)))
Utilice https://developer.apple.com/documentation/swift/double/2884269-remainder
Si usa truncatingRemainder (como se mencionó en los otros comentarios), entonces se reducirá primero el valor, lo que significa que 3.14 se convertirá en 3.
Esto parece estar disponible para mí, actualmente en Swift 3.1, así que es posible que se haya agregado nuevamente.
Mi conjetura es que está en algún lugar de la Fundación y necesita una import Foundation
explícita
Actualizar
Esto es sólo para los tipos Int. Parece que para los dobles, se requiere truncar el resto.