Heim  >  Artikel  >  Backend-Entwicklung  >  Warum wird in meinem Go-Code „Syntaxfehler: Unerwartetes Semikolon oder Zeilenumbruch vor sonst“ angezeigt?

Warum wird in meinem Go-Code „Syntaxfehler: Unerwartetes Semikolon oder Zeilenumbruch vor sonst“ angezeigt?

Linda Hamilton
Linda HamiltonOriginal
2024-11-02 12:40:02178Durchsuche

Why am I Getting

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:

  • Semikolons werden automatisch am Ende von Zeilen eingefügt, die bestimmte Token enthalten, einschließlich schließender Klammern }.
  • Daher wird nach der schließenden Klammer von an ein Semikolon eingefügt if-Block.
  • Bei if {...} else {...}-Anweisungen führt diese Semikoloneinfügung zu einem Syntaxfehler, da Semikolons in der else-Klausel nicht zulässig sind.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn