
Баг: Ожидание, что Scanln прочитает строку с пробелами
// ❌ Ты думаешь: "Scanln - значит читает всю строку"
var fullName string
fmt.Scanln(&fullName)
// Пользователь ввел: "John Doe"
// fullName = "John" (опять только до пробела) 😤
// ✅ Scanln работает ТАК ЖЕ как Scan - читает до пробела/табуляции/переноса строки
// Разница только в том, что после чтения ожидает \n
// Правильный способ для строк с пробелами:
reader := bufio.NewReader(os.Stdin)
fullName, _ := reader.ReadString('\n')Название Scanln обманчиво - оно НЕ читает всю строку, а просто требует перенос строки в конце. Обычный Scan тоже можно завершить \n, разница минимальна.
Загрузка...