Go 中Else 之前意外的分號:詳細解釋
你的Go 碼在第21 行遇到異常錯誤:「syntax error:unexpected分號或換行符號之前。
這裡的核心問題源自於Go的自動分號插入規則。通常,Go 中分號是可選的;但是,編譯器會自動將它們插入到某些行的末尾以保持語法完整性。其中一個這樣的情況是當一行以右大括號「}」結束時,例如在第 21 行關閉「if」語句的行。
這種行為對後續的「else」語句造成了障礙。在 Go 中,「else」區塊應與「if」語句的右大括號寫在同一行。因此,編譯器無法在第 21 行末尾加上分號,因為它會建立兩個單獨的語句,這是不正確的語法。
要解決此問題,請將「else」關鍵字直接放在右大括號之後第 21 行:
if subject == current_mid {
current_topic[predicate] = append(current_topic[predicate], object)
} else {
processTopic(current_mid, current_topic, xmlFile)
current_topic = make(map[string][]string)
}
此修改確保「if」和「else」語句形成單一複合語句,依照 Go 語法的要求。
關於第 28 行和第 32 行的錯誤,它們與「main」函數範圍之外的語句。在 Go 中,語句必須包含在它們所屬的函數體內。若要修正這些錯誤,請將大括號「}」內的語句包含在「main」函數體內。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3