Что такое оператор модуля (%) в быстрых 3?
У меня есть эта строка:
randomIndex = Int(drand48() % Double(alphabetColors.count))
И Xcode 8 (Swift 3) говорит мне:
'%' is unavailable: Use truncatingRemainder instead
Нет ли оператора больше? Как мне преобразовать код?
Ответы
Ответ 1
Вы можете просто следовать диагностическому сообщению:
let randomIndex = Int(drand48().truncatingRemainder(dividingBy: Double(alphabetColors.count)))
Или использование arc4random_uniform(_:)
будет лучшей альтернативой.
let randomIndex = Int(arc4random_uniform(UInt32(alphabetColors.count)))
Ответ 2
![введите описание изображения здесь]()
Кажется, это доступно для меня, в настоящее время на Swift 3.1, поэтому возможно, что он был добавлен обратно.
Я предполагаю, что он где-то в Foundation и нуждается в явном import Foundation
Обновление
Это только для типов Int. Кажется, что для удвоений требуется усекающийся остаток.