Функция rand.Int63n

Функция rand.Int63n возвращает псевдослучайное 63-битное целое число в диапазоне от 0 до n-1 включительно. В качестве аргумента функция принимает верхнюю границу диапазона n, которая должна быть положительным числом типа int64. Функция возвращает значение типа int64. Если переданное значение n меньше или равно нулю, функция вызывает панику.

Синтаксис

gorand.Int63n(n)

Пример

Давайте сгенерируем случайное число в диапазоне от 0 до 9:

gopackage main

import (
  "fmt"
  "math/rand"
)

func main() {
  res := rand.Int63n(10)
  fmt.Println(res)
}

Результат выполнения кода:

go"7"

Результат каждый раз будет разным, так как генерируется случайное число от 0 до 9 включительно.

Пример

Давайте сгенерируем случайное число для выбора элемента из слайса:

gopackage main

import (
  "fmt"
  "math/rand"
)

func main() {
  items := []string{"a", "b", "c", "d", "e"}
  index := rand.Int63n(int64(len(items)))
  fmt.Println(items[index])
}

Результат выполнения кода:

go"c"

Функция позволяет безопасно получить случайный индекс в пределах длины слайса.

Пример

Давайте сгенерируем 5 случайных чисел в диапазоне от 0 до 99:

gopackage main

import (
  "fmt"
  "math/rand"
)

func main() {
  for i := 0; i < 5; i++ {
    res := rand.Int63n(100)
    fmt.Println(res)
  }
}

Результат выполнения кода:

go"42"
"87"
"15"
"63"
"91"

Каждый вызов функции возвращает независимое случайное значение в заданном диапазоне.

Смотрите также

  • функцию rand.Intn,
    которая возвращает случайное число типа int в диапазоне от 0 до n-1
  • функцию rand.Int31n,
    которая возвращает случайное 31-битное число в диапазоне от 0 до n-1
  • функцию rand.Int63,
    которая возвращает случайное 63-битное число в полном диапазоне
  • функцию rand.Float64,
    которая возвращает случайное число с плавающей точкой от 0 до 1