Практика

Применение изученных концепций для решения реальных задач программирования.

Что изучим

  • Валидация пользовательского ввода
  • Работа с рунами и Unicode символами
  • Проверка строк по критериям безопасности
  • Итерация через for range по символам
  • Комбинирование условных конструкций и циклов
  • Использование пакетов unicode и strings

Основные концепции

Валидация паролей: проверка соответствия строки набору критериев безопасности. Включает проверку минимальной длины, наличия заглавных/строчных букв, цифр и специальных символов. Реализуется через итерацию по рунам с установкой булевых флагов при обнаружении каждого типа символа.

Работа с рунами: использование for range для корректного обхода Unicode символов. Пакет unicode предоставляет функции IsUpper, IsLower, IsDigit для классификации символов. Пакет strings содержит ContainsRune для проверки наличия символа в строке спецсимволов.

Булевы флаги: переменные типа bool для отслеживания выполнения каждого критерия. Инициализируются как false, устанавливаются в true при обнаружении соответствующего символа. После цикла проверяются через if-else для формирования отчёта.

Подсчёт выполненных критериев: счётчик увеличивается на 1 за каждый выполненный критерий. Позволяет дать пользователю количественную оценку надёжности пароля. Все 5 критериев — надёжный пароль, меньше — слабый.

Пользовательский отчёт: детализированный вывод для каждого невыполненного критерия с символом ❌ и описанием проблемы. Итоговое сообщение зависит от выполнения всех критериев. Помогает пользователю понять, что именно нужно исправить.

Константы vs переменные: минимальная длина и список спецсимволов можно объявить как константы, если они не изменяются. Упрощает дальнейшую модификацию правил валидации в одном месте.

Комбинирование конструкций: задача объединяет циклы, условия, работу со строками, пакеты unicode/strings. Демонстрирует применение всех базовых концепций Go для решения практической задачи обеспечения безопасности.


Table of contents