未解決的語法錯誤:檢查「意外分號」和「非聲明語句」問題
在提供的程式碼中,您遇到幾個錯誤,特別是第21、28 和32 行。讓我們深入研究每個錯誤並解決方法:
第21 行錯誤:Unexpected Semicolon or Newline Before "else"
出現此錯誤是因為Go 要求將關鍵字「else」放在與其對應的「if」或「else if」語句的右大括號在同一行。在您的程式碼中,「if」區塊在第 20 行以分號結束,這會自動插入換行符。因此,第 21 行的「else」語句成為一個單獨的語句,從而導致語法錯誤。
解:
將「else」關鍵字移到與「if」區塊的右大括號,如下所示:
... } else if len(current_mid) > 0 { processTopic(current_mid, current_topic, xmlFile) current_topic = make(map[string][]string) } ...
第28 行和32:函數體之外的非宣告語句
這些錯誤表明您在main() 函數體之外放置了語句(processTopic 呼叫)。在 Go 中,非宣告語句必須出現在函數體內。
解:
將processTopic 呼叫移回main() 函數體內,如下所示:
... } 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 ...
透過解決這些錯誤,您的程式碼現在應該可以成功編譯。請記住以下規則,以避免將來出現類似問題:
以上是為什麼函數外部的分號和語句會導致我的 Go 程式碼出錯?的詳細內容。更多資訊請關注PHP中文網其他相關文章!