Go の変数スコープとシャドウイング: 総合ガイド
Go では、クリーンで保守可能なコードを書くために変数スコープとシャドウイングを理解することが重要です。変数スコープはプログラム内の変数の可視性を定義しますが、シャドウイングはネストされたスコープ内で同じ名前の変数を再宣言することを指します。
Go の変数スコープ
Go は字句スコープを使用します。これは、変数のスコープがコード内の位置によって決定されることを意味します。 5 つの異なるスコープ レベルがあります:
Go での変数シャドウイング
シャドウイングは変数が指定されたときに発生します内部スコープの変数は、外部スコープの変数と同じ名前で宣言されます。このような場合、内側のスコープの変数が優先され、外側の変数がシャドウされます。
変数のスコープとシャドウイングの利点
変数シャドウイングのさまざまな形式
Go では、変数シャドウイングは次のように行うことができます。いくつかの方法で実現できます:
ステートメント内での短縮代入の使用:
for i := 'a'; i < 'b'; i++ { // i shadowed inside this block }
の使用{...}ペア:
{ i := "hi" //new local var }
関数呼び出しの使用:
func fun(i int) { i++ //use as local var without side effect }
シャドウイング グローバル変数:
var i int = 1 //global func main() { i := 10 //Shadowing global var }
コード サンプルと例
変数のスコープ:
package main func main() { i := 10 //scope: main fmt.Println(i) //output: 10 }
この例では、i は main 関数内で宣言されており、その関数内でのみアクセスできます。
変数シャドウイング:
package main func shadow() { x := 10 //shadowing global variable x fmt.Println(x) //output: 10 } var x int = 1 //global variable func main() { fmt.Println(x) //output: 1 shadow() }
この例では、グローバル変数 x はシャドウ関数のローカル変数 x によってシャドウされます。 。したがって、シャドウ関数内で x にアクセスすると、値 10 のローカル変数が参照されます。
以上がGo では変数スコープとシャドウイングはどのように機能しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。