ホームページ >バックエンド開発 >Golang >コンストラクターを使用せずに Go で構造体を初期化するにはどうすればよいですか?

コンストラクターを使用せずに Go で構造体を初期化するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-18 02:47:14173ブラウズ

How Do I Initialize Structs in Go Without Constructors?

Go のコンストラクター

Go で構造体として定義されたカスタム型を扱う場合、適切なデフォルト値で初期化することが望ましい場合があります。創造。ただし、従来のオブジェクト指向プログラミング言語とは異なり、Go には構造体専用のコンストラクターがありません。

コンストラクターの代替: 新しい関数

この状況に対処するために、Go エンジニアは一般的に「新しい」機能が使用されます。これらの関数は、初期化に必要なパラメータを受け取り、新しい構造体インスタンスへのポインタを返します:

type Thing struct {
    Name  string
    Num   int
}

func NewThing(someParameter string) *Thing {
    p := new(Thing)
    p.Name = someParameter
    p.Num = 33
    return p
}

このアプローチにより、「Num」フィールドに値を割り当てるなど、特定のデフォルトで構造体の値を初期化できます。 .

凝縮された新しい関数構文

単純な構造体の場合、圧縮された構文を使用できます。

func NewThing(someParameter string) *Thing {
    return &Thing{someParameter, 33}
}

非ポインター戻り型

ポインターを返したくない場合は、代わりに「make」関数を使用できます。 「新規」の:

func makeThing(name string) Thing {
    return Thing{name, 33}
}

以上がコンストラクターを使用せずに Go で構造体を初期化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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