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) }
Now 、変数 req と er は if...else ステートメントの外側で宣言されているため、関数全体で使用できます。
以上がGo の「if...else」ステートメント内で宣言された変数にアクセスする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。