fmt.scanln ожидания
При использовании fmt.scanln в go можно столкнуться с ошибкой: "fmt.scanln ожидаемой новой строки". Понимание этой ошибки и ее последствий имеют решающее значение для отладки и написания надежного кода. От стандартного ввода, обработка новейшей как космических символов. Это означает, что он будет продолжать вход в анализ до тех пор, пока либо не будут заполнены все аргументы, либо возникнет ошибка. С другой стороны, FMT.Scanln также считывает от стандартного ввода, но ожидает новую линию символа в качестве точки завершения. Любой ввод после этого не будет проанализирован.
пример
В предоставленном коде GO, проблема возникает при использовании fmt.scanln для чтения строки s. Вход включает в себя новый символ, который запускает конец ввода для FMT.Scanln. Тем не менее, последующие входные символы «Все любят мороженое» все еще присутствуют и потребляются последующим FMT.Scan. Это вызывает ошибку, как и FMT.Scan ожидает новой линии в конце ввода. , рассмотрите возможность использования метода чтения Bufio.reader:
импорт "Bufio" func main () { Читатель: = bufio.newreader (os.stdin) строка, err: = reader.readstring ('\ n') }
Заключение
понимание различных поведений fmt.scan и fmt.scanln важно предотвратить ошибки и записать код, который соответствует ожиданиям. При чтении линии текста альтернативы, такие как Bufio.reader и Readstring, предоставляют более явные и эффективные решения. ]
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3