Ошибка с генерацией случайных чисел в Swift на Linux? - PullRequest
0 голосов
/ 18 июня 2019

У меня есть фрагмент кода следующим образом:

extension Array {
  fileprivate func random() -> Element {
    let idx: Int
    #if os(Linux)
    idx = Int(random() % count)
    #else
    idx = Int(arc4random_uniform(UInt32(count)))
    #endif

    return self[idx - 1]
  }
}

Когда я пытаюсь развернуть мое приложение, оно выдает ошибки при запуске Docker с использованием Linux, проблема выглядит следующим образом:

ошибка: двоичный оператор «%» нельзя применить к операндам типа «Int32» и «Int» idx = Int (rand ()% count)

Я отследил проблему до этой функции, но не могуразработайте исправление здесь, поскольку оно уже предназначено для обеспечения альтернативной обработки для Linux ...

1 Ответ

0 голосов
/ 18 июня 2019

Ошибка указывает, что random() возвращает Int32.Так что вам нужно конвертировать одну сторону.

idx = Int(random()) % count
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...