Функция rand.Int31n
Функция rand.Int31n генерирует псевдослучайное целое число
типа int32 в диапазоне от 0 (включительно) до n (исключительно).
В качестве единственного параметра она принимает число n типа int32,
задающее верхнюю границу диапазона. Если передать n <= 0, функция
вызовет панику. Для корректной работы необходимо инициализировать
генератор случайных чисел с помощью rand.Seed.
Синтаксис
rand.Int31n(n int32) int32
Пример
Давайте сгенерируем случайное число от 0 до 9:
package main
import (
"fmt"
"math/rand"
"time"
)
func main() {
rand.Seed(time.Now().UnixNano())
res := rand.Int31n(10)
fmt.Println(res)
}
Результат выполнения кода:
"7"
Пример
Сгенерируем несколько случайных чисел для диапазона от 0 до 100:
package main
import (
"fmt"
"math/rand"
"time"
)
func main() {
rand.Seed(time.Now().UnixNano())
for i := 0; i < 5; i++ {
res := rand.Int31n(101)
fmt.Println(res)
}
}
Результат выполнения кода:
"42"
"87"
"13"
"56"
"91"
Пример
Попробуем передать отрицательное значение, чтобы увидеть панику:
package main
import (
"fmt"
"math/rand"
)
func main() {
defer func() {
if r := recover(); r != nil {
fmt.Println("Panic:", r)
}
}()
res := rand.Int31n(-5)
fmt.Println(res)
}
Результат выполнения кода:
"Panic: invalid argument to Int31n"
Смотрите также
-
функцию
rand.Int31,
которая генерирует случайное число в полном диапазоне int32 -
функцию
rand.Int63n,
которая генерирует случайное число в диапазоне [0, n) для типа int64 -
функцию
rand.Intn,
которая генерирует случайное число в диапазоне [0, n) для типа int -
функцию
rand.Seed,
которая инициализирует генератор случайных чисел