Типы и пользовательский ввод

Работа с математическими операциями, преобразованием типов и получением данных от пользователя.

Что изучим

  • Пакет math: константы, округление и математические функции
  • Преобразование типов: строки в числа и обратно
  • Базовый ввод через fmt.Scanln
  • Продвинутые методы ввода: Scan, Scanf
  • Безопасный ввод с bufio.Scanner
  • Валидация и обработка ошибок

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

Пакет math: содержит математические константы высокой точности (Pi, E), функции округления (Round, Floor, Ceil, Trunc), операции со степенями и корнями. Round округляет математически, Floor к минус бесконечности, Ceil к плюс бесконечности, Trunc отбрасывает дробную часть к нулю.

Преобразование типов: функции из пакета strconv конвертируют строки в числа (ParseInt, ParseFloat, Atoi) и обратно (Itoa, FormatFloat). Все функции парсинга возвращают два значения: результат и ошибку, которую обязательно нужно проверять.

Ввод данных через fmt.Scanln: простейший способ получить данные от пользователя. Считывает до символа новой строки, разделяет значения пробелами. Не подходит для многословных строк — останавливается на первом пробеле.

Продвинутый ввод: Scan игнорирует переносы строк, Scanf считывает по шаблону с заданными разделителями. Оба метода требуют понимания работы с буфером ввода.

bufio.Scanner: безопасный способ чтения строк, корректно работает с многословным текстом и переносами строк. Рекомендуется для production кода вместо fmt.Scanln.

Обработка ошибок: всегда проверяйте ошибку при парсинге пользовательского ввода. Невалидные данные должны обрабатываться корректно, а не приводить к панике программы.