ホームページ >バックエンド開発 >Golang >同じ名前の関数レベル変数が Go に存在する場合にパッケージレベル変数にアクセスするにはどうすればよいですか?

同じ名前の関数レベル変数が Go に存在する場合にパッケージレベル変数にアクセスするにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-16 22:19:03330ブラウズ

How to Access Package-Level Variables When a Function-Level Variable with the Same Name Exists in Go?

関数レベルの変数を介して定数またはパッケージ レベルの変数にアクセスする

Go では、定数または変数をパッケージで宣言するのが一般的ですレベルに設定し、パッケージ全体からアクセスできるようにします。ただし、変数が関数レベルでも宣言されている場合、その変数は関数のスコープ内でパッケージ レベルの変数よりも優先されます。

関数の代わりに定数またはパッケージ レベルの変数を参照するにはどうすればよいですか?

説明

残念ながら、レベル変数を参照する簡単な方法はありません。同じ名前の関数レベルの変数が存在する場合は、パッケージ レベルの変数。 Go 仕様によれば、ブロック内で宣言された識別子 (関数を含む) は、そのブロックのスコープ内のパッケージ レベルで宣言された識別子よりも優先されます。

回避策

パッケージレベル変数と関数レベル変数の両方に同時にアクセスするには、次の点を考慮してください。回避策:

1.異なる名前を使用する

競合を避けるために、可能であれば、関数レベルの変数とパッケージ レベルの変数に異なる名前を使用します。これにより、両方の変数に独立してアクセスできるようになります。

2.パッケージ レベル変数のコピーを保存する

関数レベル変数に値を割り当てる前に、パッケージ レベル変数のコピーを別の名前の新しい変数に保存します。こうすることで、関数のスコープ内でもパッケージ レベルの変数を参照できます。

3.関数を作成する

もう 1 つの方法は、パッケージ レベルの変数の値を返す関数を作成することです。これにより、関数レベル変数のスコープ内で関数を呼び出すことで、パッケージ レベル変数にアクセスできるようになります。

以上が同じ名前の関数レベル変数が Go に存在する場合にパッケージレベル変数にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。