Heim >Backend-Entwicklung >Golang >Warum erhalte ich in meinem Go-Code den Fehler „Unerwartetes Semikolon oder Zeilenumbruch vor anderem'?

Warum erhalte ich in meinem Go-Code den Fehler „Unerwartetes Semikolon oder Zeilenumbruch vor anderem'?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-02 19:17:02976Durchsuche

Why am I getting the

Unerwartetes Semikolon oder Newline vor else

Der Fehler „Unerwartetes Semikolon oder Newline vor else“ tritt auf, wenn in einem if ein Semikolon oder Newline-Zeichen vor dem Schlüsselwort else steht -else-Anweisung. Im bereitgestellten Code befindet sich der Fehler in Zeile 21:

for err == nil{
    subject, predicate, object := parseTriple(line)
    if subject == current_mid{
        current_topic[predicate] = append(current_topic[predicate], object)
    }
    else if len(current_mid) > 0{
        processTopic(current_mid, current_topic, xmlFile)
        current_topic = make(map[string][]string)
    }
    current_mid = subject
    line, err = r.ReadString('\n')
}

In diesem Fall steht nach der schließenden Klammer des if-Blocks ein Zeilenumbruchzeichen, das den Fehler verursacht. Um den Fehler zu beheben, sollte die else if-Anweisung in derselben Zeile wie die schließende Klammer platziert werden:

for err == nil{
    subject, predicate, object := parseTriple(line)
    if subject == current_mid{
        current_topic[predicate] = append(current_topic[predicate], object)
    } else if len(current_mid) > 0{
        processTopic(current_mid, current_topic, xmlFile)
        current_topic = make(map[string][]string)
    }
    current_mid = subject
    line, err = r.ReadString('\n')
}

Erklärung:

In Go wird das Semikolon zum Beenden von Anweisungen verwendet. Allerdings fügt Go am Ende bestimmter Zeilen auch automatisch ein Semikolon ein, einschließlich Zeilen, die mit einer schließenden Klammer } enden. Das heißt, wenn Sie einen if-Block haben, der sich über mehrere Zeilen erstreckt, müssen Sie die else-Anweisung in derselben Zeile wie die schließende geschweifte Klammer platzieren, sonst fügt Go nach der schließenden Klammer ein Semikolon ein und verursacht einen Syntaxfehler.

Die Fehlermeldungen in den Zeilen 28 und 32 („Non-Declaration Statement Outside Function Body“) werden auch durch den Fehler in Zeile 21 verursacht. Die schließende Klammer in Zeile 21 ist nicht ordnungsgemäß abgeschlossen, daher behandelt Go die Zeilen danach, als ob sie außerhalb der Hauptfunktion wären. Um diese Fehler zu beheben, müssen Sie zunächst den Fehler in Zeile 21 beheben.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich in meinem Go-Code den Fehler „Unerwartetes Semikolon oder Zeilenumbruch vor anderem'?. 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