Случайный Свифт

Введение в функции рандомизации в 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.