関数レベルの変数を介して定数またはパッケージ レベルの変数にアクセスする
Go では、定数または変数をパッケージで宣言するのが一般的ですレベルに設定し、パッケージ全体からアクセスできるようにします。ただし、変数が関数レベルでも宣言されている場合、その変数は関数のスコープ内でパッケージ レベルの変数よりも優先されます。
関数の代わりに定数またはパッケージ レベルの変数を参照するにはどうすればよいですか?
説明
残念ながら、レベル変数を参照する簡単な方法はありません。同じ名前の関数レベルの変数が存在する場合は、パッケージ レベルの変数。 Go 仕様によれば、ブロック内で宣言された識別子 (関数を含む) は、そのブロックのスコープ内のパッケージ レベルで宣言された識別子よりも優先されます。
回避策
パッケージレベル変数と関数レベル変数の両方に同時にアクセスするには、次の点を考慮してください。回避策:
1.異なる名前を使用する
競合を避けるために、可能であれば、関数レベルの変数とパッケージ レベルの変数に異なる名前を使用します。これにより、両方の変数に独立してアクセスできるようになります。
2.パッケージ レベル変数のコピーを保存する
関数レベル変数に値を割り当てる前に、パッケージ レベル変数のコピーを別の名前の新しい変数に保存します。こうすることで、関数のスコープ内でもパッケージ レベルの変数を参照できます。
3.関数を作成する
もう 1 つの方法は、パッケージ レベルの変数の値を返す関数を作成することです。これにより、関数レベル変数のスコープ内で関数を呼び出すことで、パッケージ レベル変数にアクセスできるようになります。
以上が同じ名前の関数レベル変数が Go に存在する場合にパッケージレベル変数にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。