Повторение
Циклы, генерация случайных чисел и управление повторяющимися операциями в Go.
Что изучим
- Генерация случайных чисел через math/rand
- Криптографически стойкая генерация через crypto/rand
- Цикл for: единственный цикл в Go
- Структура цикла: init, condition, post
- Вложенные циклы и области видимости счётчиков
- Бесконечные циклы и while-подобные конструкции
- Управление циклами: break, continue
Основные концепции
math/rand: пакет для генерации псевдослучайных чисел. Требует инициализации seed через rand.Seed() для непредсказуемости. Без инициализации генерирует одинаковую последовательность при каждом запуске. Быстрый, но не криптостойкий — числа предсказуемы при известном seed.
crypto/rand: криптографически стойкий генератор на основе системной энтропии. Использует /dev/urandom на Unix, CryptGenRandom на Windows. Невозможно предсказать последовательность даже зная алгоритм. Работает в 40 раз медленнее math/rand. Используется для паролей, токенов, ключей шифрования. Возвращает big.Int вмест