Повторение

Циклы, генерация случайных чисел и управление повторяющимися операциями в 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 вмест