1. ホーム
  2. 行く

[解決済み】Goの構造体にデフォルト値を設定する方法

2022-04-10 17:45:09

質問

以下の質問に対する答えやテクニックは複数存在します。

  1. golang の構造体にデフォルト値を設定する方法は?
  2. golang で構造体を初期化する方法

いくつかの回答がありますが、さらなる議論が必要です。

解決方法は?

  1. 構造体を取得するメソッドを強制的に作成する(コンストラクタの方法)。

    から この記事 :

    良いデザインは、型を非エクスポートにすることですが、次のようなエクスポートされたコンストラクタ関数を提供することです。 NewMyType() で、構造体/型を適切に初期化することができます。また、コンクリート型ではなくインターフェイス型を返し、そのインターフェイスには他の人があなたの値に対して行いたいことがすべて含まれている必要があります。そして、あなたの具象型はもちろんそのインターフェイスを実装しなければなりません。

    これは、単純に型自体を非エクスポートにすることで実現できます。関数NewSomethingやフィールドText、DefaultTextをエクスポートすることはできますが、構造体型somethingをエクスポートしないようにすればよいのです。

  2. また、自分のモジュール用にカスタマイズする方法として デフォルト値を設定するためのConfig構造体 (リンク先のオプション5)。しかし、良い方法とは言えません。