Go で構造体を操作する場合、適切に機能することを保証するために、適切なデフォルト値で構造体を初期化することが重要です。 Go には従来のコンストラクターがありませんが、この目的を達成するために使用できるメソッドがいくつかあります。
Init メソッド
init メソッドは、パッケージ レベルで定義されていますが、パッケージ内の構造体の初期化タスクを実行するために利用できます。ただし、これは構造体に直接関連付けられておらず、構造体の作成時に呼び出されません。
新しい関数
Go では、次のような新しい関数を定義するのが一般的です。初期化されたポインタを構造体に返します。これらの関数を使用すると、構造体の初期化中にデフォルト値を割り当てることができます。
func NewThing(someParameter string) *Thing { p := new(Thing) p.Name = someParameter p.Num = 33 // Sensible default value return p }
凝縮された New 関数
単純な構造体の場合、New 関数の圧縮バージョンは次のようになります。使用され、初期化された構造体を直接返します:
func NewThing(someParameter string) *Thing { return &Thing{someParameter, 33} }
Make関数
Make 関数は New 関数に似ていますが、ポインタではなく値によって構造体を返します。これは、構造体へのポインタが必要ない場合に便利です。
func makeThing(name string) Thing { return Thing{name, 33} }
Reference
new を使用した割り当ての詳細については、効果的な Go を参照してください。ドキュメント: https://go.dev/doc/Effective_go#allocation
以上がGo で適切なデフォルト値を使用して構造体を初期化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。