ホームページ > バックエンド開発 > Golang > Go で適切なデフォルト値を使用して構造体を初期化するにはどうすればよいですか?

Go で適切なデフォルト値を使用して構造体を初期化するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-26 15:04:09
オリジナル
516 人が閲覧しました

How Can I Initialize Structs with Sensible Default Values in Go?

Go のコンストラクター: 適切なデフォルト値のガイド

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート