Heim > Artikel > Backend-Entwicklung > Können leere Zeilen dazu führen, dass „input.Scan()“ in Go „False“ zurückgibt?
Ausbruch von Input.Scan()
In Go wird die Funktion input.Scan() häufig verwendet, um Eingaben aus dem zu lesen Konsole. Während der in der Frage bereitgestellte Code effektiv funktioniert, suchte der Autor nach einer Möglichkeit, die if-Klausel zu eliminieren, die prüft, ob das Schlüsselwort „end“ aus der Schleife ausbricht.
Laut Dokumentation funktioniert Scan() Gibt „false“ zurück, wenn der Scan stoppt, entweder weil das Ende der Eingabe erreicht ist oder ein Fehler auftritt. Nach dem Verständnis des Autors sollte jedoch eine leere Zeile eine Rückgabe von „false“ auslösen und damit die Schleife beenden, ohne dass die if-Klausel erforderlich wäre.
Bei näherer Betrachtung ist der im bereitgestellten Code verwendete Standardscanner tatsächlich ScanLines , nicht ScanWords. ScanLines gibt jede Textzeile ohne Zeilenenden zurück und kann Leerzeilen enthalten. Wichtig ist, dass auch die letzte nicht leere Eingabezeile zurückgegeben wird, auch wenn ihr ein Zeilenende fehlt.
Der Scanner stellt den Betrieb nur dann ein, wenn er auf EOF (End Of File) stößt. Daher ist die if-Klausel im Originalcode immer noch notwendig, um die Schleife zu beenden, wenn der Benutzer „end“ eingibt, um das Ende der Eingabe anzuzeigen.
Das obige ist der detaillierte Inhalt vonKönnen leere Zeilen dazu führen, dass „input.Scan()“ in Go „False“ zurückgibt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!