Случайный Свифт
Введение в функции рандомизации в Swift
Часто бывает необходимо добавить некоторую случайность в приложение Swift во время разработки. Например, если вам нужно подделать данные, введенные пользователем во время модульного тестирования, или отобразить какой-либо динамический текст-заполнитель, чтобы освоиться с автоматическим макетом.
В Swift 2 Apple предоставляет следующие функции (среди прочего) для работы со случайностью:
- arc4random ()
- drand48 ()
- arc4random_uniform (UInt32)
Давайте рассмотрим эти функции на примере кода.
"Но прежде чем мы начнем ...
давай на игровую площадку!"
Чтобы избежать множества операторов печати, откройте новую площадку в Xcode. Игровая площадка - это представление с двумя столбцами, в котором левый столбец используется для ввода исходного кода, а правый столбец отображает значение исходного кода в реальном времени.
P.S .: Я рекомендую написать один и тот же вызов функции в нескольких строках, чтобы убедиться, что возвращаемое значение действительно случайное. Ниже вы можете увидеть снимок экрана с игровой площадкой, на котором я «играл» со случайными функциями.
arc4random ()
Возвращает случайное число в диапазоне от 0 до 2 ^ 32.
Полезно знать: если у вас нет числа из этого сверхбольшого диапазона, вы также можете использовать функции rand () и random (), которые возвращают случайное число из «всего лишь» половины диапазона.
drand48 ()
Возвращает случайное значение типа double от 0,0 до 1,0.
Имейте в виду, что возвращаемое значение - Double, а не Int! Чтобы узнать больше о drand48 () и его семействе аналогичных функций, обратитесь к Документации Apple.
arc4random_uniform (UInt32)
Возвращает случайное число от 0 до вставленного параметра минус 1.
Например, arc4random_uniform (3) может возвращать 0, 1 или 2, но не 3.
Эта функция является наиболее распространенной случайной функцией, но у нее есть одна небольшая проблема: работа с UInt32 в Swift не очень распространена, поэтому преобразование в Int обычно выполняется, как в следующем примере:
var x = 10
x = x + Int (arc4random_uniform (3))
Моя последняя площадка
Я уже говорил, что игровые площадки - отличный способ проводить быстрые изолированные эксперименты с кодом? Специально для более опытных разработчиков?
Если не сейчас: игровые площадки - это здорово!
А вот и мой:
Если вам понравилась эта статья, я напишу еще одну о том, как сгенерировать случайные тексты, цвета и адреса электронной почты в Swift.