Go 中的變數作用域
在 Go 中,變數必須在特定作用域內宣告。當您在 if...else 語句內宣告變數時,其範圍僅限於該語句。這意味著該變數不能在語句之外使用。
請考慮以下程式碼:
if strings.EqualFold(r.Method, "GET") || strings.EqualFold(r.Method, "") { req, er := http.NewRequest(r.Method, r.Uri, b) } else { req, er := http.NewRequest(r.Method, r.Uri, b) }
在此程式碼中,變數 req 和 er 在 if... 內宣告。 else 語句。這意味著它們只能在該語句中使用。在語句之外,變數是未定義的。
要解決這個問題,可以在if...else 語句之外聲明變量,如下所示:
var req *http.Request var er error if strings.EqualFold(r.Method, "GET") || strings.EqualFold(r.Method, "") { req, er = http.NewRequest(r.Method, r.Uri, b) } else { req, er = http.NewRequest(r.Method, r.Uri, b) }
現在,變量req 和er 是在if...else語句之外聲明的,因此它們可以在整個函數中使用。
以上是如何存取 Go 中 `if...else` 語句中宣告的變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!