Что такое оператор модуля (%) в быстрых 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. Кажется, что для удвоений требуется усекающийся остаток.
Ответ 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. Кажется, что для удвоений требуется усекающийся остаток.