2017-08-16 40 views
1

我想爲golang中的struct字段分配默認值。我不確定是否有可能,但是在創建/初始化結構對象的時候,如果我沒有給該字段賦值,我希望它被賦值爲默認值。任何想法如何實現它?在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,你已經免費獲得。如果您需要某個類型的零值以外的某個默認值,則只需要一個構造函數。