Сайт работает в тестовом режиме - все замечания, предложения и информацию о найденных ошибках направляйте, пожалуйста, в Telegram-группу
Курс в процессе наполнения. Полный курс доступен на Степике

Баг: Забывать нормализовать ввод (TrimSpace)

Да, scanner.Text() уже убирает \n, но это не значит, что строка становится “чистой” для сравнения или логики.

Частая ошибка - сравнивать ввод напрямую:

scanner.Scan()  
text := scanner.Text()  
  
if text == "yes" { // может не сработать

Проблема в том, что пользователь мог ввести:

  • "yes " (пробел в конце)

  • " yes" (пробел в начале)

  • "yes\t" (таб)

И Text() это не удаляет.

Правильный подход - всегда нормализовать ввод:

text := strings.TrimSpace(scanner.Text())  
  
if text == "yes" {  
    fmt.Println("OK")  
}

scanner.Text() убирает перевод строки, но не очищает пробелы - поэтому без TrimSpace легко получить “невидимые” ошибки сравнения.

Загрузка...