РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
346 of 1593 menu

Функция rand.Read

Функция rand.Read заполняет переданный ей слайс байтов случайными значениями. Она принимает один параметр - слайс []byte. В качестве результата функция возвращает количество записанных байтов и ошибку, которая всегда равна nil. Функция использует глобальный генератор случайных чисел из пакета rand.

Синтаксис

rand.Read(p []byte) (n int, err error)

Пример

Давайте заполним слайс из 5 байтов случайными значениями:

package main import ( "fmt" "math/rand" ) func main() { slice := make([]byte, 5) n, err := rand.Read(slice) if err != nil { fmt.Println("Error:", err) return } fmt.Printf("Read %d bytes: %v\n", n, slice) }

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

"Read 5 bytes: [123 45 67 89 12]"

Пример

Давайте заполним слайс из 10 байтов и проверим количество записанных байтов:

package main import ( "fmt" "math/rand" ) func main() { buf := make([]byte, 10) n, err := rand.Read(buf) if err != nil { fmt.Println("Error:", err) return } fmt.Println("Bytes read:", n) fmt.Printf("Data: %v\n", buf) }

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

"Bytes read: 10" "Data: [200 150 45 78 23 167 89 34 56 12]"

Пример

Давайте заполним слайс с использованием локального генератора rand.Rand:

package main import ( "fmt" "math/rand" "time" ) func main() { source := rand.NewSource(time.Now().UnixNano()) rng := rand.New(source) data := make([]byte, 8) n, err := rng.Read(data) if err != nil { fmt.Println("Error:", err) return } fmt.Printf("Generated %d random bytes: %v\n", n, data) }

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

"Generated 8 random bytes: [45 123 67 89 34 12 200 150]"

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

  • функцию rand.Float64,
    которая возвращает случайное число с плавающей точкой
  • функцию rand.Int,
    которая возвращает случайное целое число
  • функцию rand.Intn,
    которая возвращает случайное число в заданном диапазоне
  • функцию rand.Seed,
    которая инициализирует генератор случайных чисел
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить