Функция crypto/rand.Int
Функция crypto/rand.Int генерирует криптостойкое случайное целое число
в диапазоне [0, max). Первым параметром она принимает источник случайности
io.Reader, вторым - границу *big.Int, задающую верхний предел
(не включая его). Функция возвращает два значения: само число типа
*big.Int и ошибку error.
Синтаксис
rand.Int(reader, max)
Пример
Давайте сгенерируем случайное число от 0 до 100 (не включая 100):
package main
import (
"crypto/rand"
"fmt"
"math/big"
)
func main() {
max := big.NewInt(100)
n, err := rand.Int(rand.Reader, max)
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println(n)
}
Результат выполнения кода:
42
Значение будет меняться при каждом запуске.
Пример
Сгенерируем случайное число от 0 до 1000 (не включая 1000):
package main
import (
"crypto/rand"
"fmt"
"math/big"
)
func main() {
max := big.NewInt(1000)
n, err := rand.Int(rand.Reader, max)
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println(n)
}
Результат выполнения кода:
789
Смотрите также
-
функцию
crypto/rand.Read,
которая заполняет слайс криптостойкими случайными байтами -
функцию
crypto/rand.Prime,
которая генерирует простое число заданной длины -
пакет
crypto/rand,
содержащий другие функции для криптографически безопасной генерации -
пакет
crypto/subtle,
предоставляющий функции для константного сравнения данных