Heim > Artikel > Backend-Entwicklung > Warum wird in meinem Go-Code „Syntaxfehler: Unerwartetes Semikolon oder Zeilenumbruch vor sonst“ angezeigt?
Unvorhergesehener Syntaxfehler: Unerwartetes Semikolon oder Newline vor „Else“ in Go
Der Go-Compiler meldet eine rätselhafte Fehlermeldung: „Syntaxfehler : unerwartetes Semikolon oder Newline vor else.“ Trotz einer gründlichen Prüfung von Zeile 21 scheinen im Code keine beleidigenden Semikolons oder Zeilenumbrüche zu fehlen.
Bei näherer Betrachtung entdecken wir zwei weitere rätselhafte Fehler in den Zeilen 28 und 32: „Non-Declaration Statement Outside Function Body.“ Diese Anweisungen befinden sich in der main()-Funktion und sollten von der schließenden Klammer, die die Funktion beendet, unberührt bleiben.
Es gibt Hinweise darauf, dass die oben genannten Fehler auf ein zugrunde liegendes Problem in Zeile 21 zurückzuführen sind. Die Go-Sprache führt einige einzigartige Semikolons ein. Handhabungsverhalten:
Um dieses Problem zu beheben, muss die else-Klausel in derselben Zeile wie die schließende geschweifte Klammer des if-Blocks platziert werden. Zum Beispiel:
if len(current_mid) > 0 { processTopic(current_mid, current_topic, xmlFile) } else { current_topic = make(map[string][]string) }
Der Compilerfehler bezüglich „Nicht-Deklarationsanweisung außerhalb des Funktionskörpers“ ergibt sich aus der strengen Anforderung von Go, dass Anweisungen außerhalb des Funktionskörpers Deklarationen sein müssen. Im Fall der Zeilen 28 und 32 sind die Ausdrücke weder Deklarationen noch Teil des Funktionskörpers, daher die Fehlermeldungen.
Das obige ist der detaillierte Inhalt vonWarum wird in meinem Go-Code „Syntaxfehler: Unerwartetes Semikolon oder Zeilenumbruch vor sonst“ angezeigt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!