#swift #arc4random
#swift #arc4random
Вопрос:
Этот код передает 3 в качестве аргумента arc4random_uniform()
функции, и я предполагаю, что он возвращает true или false . Затем вы присваиваете перечислитель переменной. Однако я не понимаю, что делает функция.
let randomState = arc4random_uniform(3) == 2 ? CellState.Alive :
CellState.Empty
let cell = Cell(grid: self,
pos: (i, j),
state: randomState)
Я не следую этой логике.
Комментарии:
1. Что именно вы не понимаете? Или, лучше, что вы понимаете?
2. Я предполагаю, что вы передаете 3 в качестве аргумента функции, и она возвращает true или false . Затем вы присваиваете перечислитель переменной. Вопрос только в том, что делает функция
3. arc4random_uniform(3) возвращает случайным образом 0, 1 или 2. Итак, он говорит, что если случайное число равно 2 (вероятность 33,33%), оно будет использовать CellState. В противном случае оно равно 0 или 1 (вероятность 66,66%), это будет состояние ячейки. Пусто
Ответ №1:
Это «arc4random_uniform(3) == 2 ? Состояние ячейки.Alive : состояние ячейки.Пустой» формат, который вы не понимаете? Он записывается как условный (троичный) оператор:
условие ? выражение 1: выражение 2
В принципе, если функция arc4random_uniform(3) == 2, пусть RandomState == CellState .Активен, в противном случае пусть RandomState == CellState .Пусто.