Ungelöste syntaktische Fehler: Untersuchen der Probleme „Unerwartetes Semikolon“ und „Nicht-Deklarationserklärung“
Im bereitgestellten Code stoßen Sie auf mehrere Fehler, insbesondere in den Zeilen 21, 28 und 32. Schauen wir uns jeden Fehler und seine Lösung genauer an:
Fehler in Zeile 21: Unerwartetes Semikolon oder Newline vor „else“
Dieser Fehler tritt auf, weil Go erfordert, dass das Schlüsselwort „else“ in derselben Zeile wie die schließende Klammer der entsprechenden „if“- oder „else if“-Anweisung platziert wird. In Ihrem Code endet der „if“-Block in Zeile 20 mit einem Semikolon, das automatisch ein Zeilenumbruchzeichen einfügt. Folglich wird die „else“-Anweisung in Zeile 21 zu einer separaten Anweisung, was zu einem Syntaxfehler führt.
Lösung:
Verschieben Sie das Schlüsselwort „else“ in dieselbe Zeile wie die schließende geschweifte Klammer des „if“-Blocks, wie unten gezeigt:
... } else if len(current_mid) > 0 { processTopic(current_mid, current_topic, xmlFile) current_topic = make(map[string][]string) } ...
Fehler in den Zeilen 28 und 32: Non-Declaration Statement Outside Function Body
Diese Fehler Geben Sie an, dass Anweisungen (processTopic-Aufrufe) außerhalb des Hauptteils der Funktion main() platziert sind. In Go müssen Nicht-Deklarationsanweisungen innerhalb von Funktionskörpern erscheinen.
Lösung:
Verschieben Sie die ProcessTopic-Aufrufe zurück in den Funktionskörper main(), wie unten gezeigt:
... } else if len(current_mid) > 0 { processTopic(current_mid, current_topic, xmlFile) current_topic = make(map[string][]string) } processTopic(current_mid, current_topic, xmlFile) // Moved inside function body ...
Durch die Behebung dieser Fehler sollte Ihr Code nun erfolgreich kompiliert werden. Beachten Sie die folgenden Regeln, um ähnliche Probleme in Zukunft zu vermeiden:
Das obige ist der detaillierte Inhalt vonWarum verursachen Semikolons und Anweisungen außerhalb von Funktionen Fehler in meinem Go-Code?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!