首頁 >後端開發 >Golang >如何存取 Go 中 `if...else` 語句中宣告的變數?

如何存取 Go 中 `if...else` 語句中宣告的變數?

DDD
DDD原創
2024-11-14 09:33:02999瀏覽

How to Access Variables Declared Inside an `if...else` Statement in Go?

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn