首頁 > 後端開發 > Golang > 主體

為什麼函數外部的分號和語句會導致我的 Go 程式碼出錯?

Susan Sarandon
發布: 2024-11-02 21:28:30
原創
702 人瀏覽過

Why Are Semicolons and Statements Outside Functions Causing Errors in My Go Code?

未解決的語法錯誤:檢查「意外分號」和「非聲明語句」問題

在提供的程式碼中,您遇到幾個錯誤,特別是第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
...
登入後複製

透過解決這些錯誤,您的程式碼現在應該可以成功編譯。請記住以下規則,以避免將來出現類似問題:

  1. 「else」和「else if」必須與其對應 if 區塊的右大括號在同一行聲明。
  2. 非宣告語句必須放在函數體內。

以上是為什麼函數外部的分號和語句會導致我的 Go 程式碼出錯?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板