ホームページ >バックエンド開発 >Golang >Go で整数値を整数ポインターに安全に割り当てるにはどうすればよいですか?

Go で整数値を整数ポインターに安全に割り当てるにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-01 07:57:11953ブラウズ

How to Safely Assign an Integer Value to an Integer Pointer in Go?

Go で Int ポインターを Int 値に設定する

ポインター変数に値を代入しようとするときは、ポインタが nil ではありません。 nil ポインタを逆参照しようとすると、あなたも経験したように、実行時パニックが発生する可能性があります。

解決策:

ポイントされた値を設定するには、ポインタが有効なものを指している必要があります。 。 new() 関数を使用して、値 0 の int へのポインタを取得できます。

guess := new(int)
*guess = 12345

これにより、int 変数にメモリが割り当てられ、そのメモリを指すようにポインタが設定されます。これで、ポインタを介して指定された値を変更できるようになりました。

簡略化された宣言:

短い変数宣言を使用して、宣言と初期化を簡素化できます:

guess := new(int)
*guess = 12345

代替案アプローチ:

既存の変数のアドレスをポインターに割り当てることもできます:

value := 12345
guess := &value

これは、ポイントされた値ではなく、ポインター値を変更します。ただし、この単純な例でも、効果は似ています。

ポイントされた値の変更:

ポインタを通じてポイントされた値を変更すると、変数の値も変更されます。を指します。逆に、変数の値を変更すると、指定された値に影響します。

var value int
guess := &value
value = 12345
fmt.Println(*guess)
// Prints: 12345

ポインターを使用すると、変数の値を間接的に変更する便利な方法が提供されます。ただし、nil ポインター エラーを回避し、データの整合性を確保するには、ポインターを適切に初期化することが重要です。

以上がGo で整数値を整数ポインターに安全に割り当てるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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