2017-08-16 5 views
1

structフィールドのデフォルト値をgolangに割り当てたいとします。フィールドに値を代入しないと、構造体のオブジェクトを作成したり初期化しているときに、そのフィールドをデフォルト値から割り当てたいと思っています。どのようにそれを達成するためのアイデア?golangのstructフィールドのデフォルト値を割り当てます

type abc struct { 
    prop1 int 
    prop2 int // default value: 0 
} 
obj := abc{prop1: 5} 
// here I want obj.prop2 to be 0 

答えて

4

これはできません。

type abc struct { 
    prop1 int 
    prop2 int // default value: 0 
} 

func New(prop1 int) abc { 
    return abc{ 
     prop1: prop1, 
     prop2: someDefaultValue, 
    } 
} 

しかし、また、彼らのゼロ値に移動のすべての値が自動的にデフォルトことに注意してください:あなたができる最善のは、コンストラクタメソッドを使用しています。 intのゼロ値はすでに0です。だからもしあなたが望むデフォルト値が文字通り0ならば、あなたはすでにそれを無料で得ることができます。あるタイプのゼロ値以外のデフォルト値が必要な場合は、コンストラクターが必要です。