fmt.scanln erwartung
Bei Verwendung von fmt.scanln in gO können man auf den Fehler stoßen: "fmt.scanln erwartet Newline." Das Verständnis dieses Fehlers und seiner Auswirkungen ist entscheidend für das Debugieren und Schreiben robuster Code. Aus Standardeingaben, die Neuleitungen als Space -Charaktere behandeln. Dies bedeutet, dass die Eingabe weiter analysiert wird, bis entweder alle Argumente gefüllt sind oder ein Fehler auftritt. Andererseits liest FMT.Scanln auch aus Standardeingaben, erwartet jedoch einen neuen Charakter als Abschlusspunkt. Jede Eingabe danach wird nicht analysiert.
example
im angegebenen Go -Code ergeben sich das Problem, wenn fmt.scanln verwendet wird, um eine Zeichenfolge zu lesen. Die Eingabe enthält einen neuen Charakter, der das Ende der Eingabe für fmt.scanln auslöst. Die nachfolgenden Eingangsfiguren "Jeder liebt Eiscreme" sind jedoch immer noch vorhanden und werden von der nachfolgenden FMT.Scan konsumiert. Dies verursacht den Fehler, wie fmt.scan am Ende der Eingabe eine neue Zeile erwartet. , erwägen Sie die Readstring -Methode von bufio.reader:
importieren "bufio" func main () { Leser: = bufio.newreader (os.stdin) Zeile, err: = reader.readstring ('\ n') }
schlussfolgerung
das unterschiedliche Verhalten von fmt.scan und fmt.scanln ist wichtig, um Fehler zu verhindern und Code zu schreiben, die auf die Erwartungen ausgerichtet sind. Beim Lesen einer Textzeile bieten Alternativen wie bufio.reader und ReadString explizitere und effizientere Lösungen.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3