我有一个与实体对应的用户结构。如何添加新属性active
并将默认值设置为true
?
我是否可以通过一些简单的方法为所有现有实体将该属性的值设置为true
?
type User struct {
Id int64 `json:"id"`
Name string `json:"name"`
}
奖金问题:我不太了解结构中的语法。这三列代表什么? JSON字符串在它们周围有什么作用?
答案 0 :(得分:1)
//You can't change declared type.
type User struct {
Id int64 `json:"id"`
Name string `json:"name"`
}
//Instead you construct a new one embedding existent
type ActiveUser struct {
User
Active bool
}
//you instantiate type literally
user := User{1, "John"}
//and you can provide constructor for your type
func MakeUserActive(u User) ActiveUser {
auser := ActiveUser{u, true}
return auser
}
activeuser := MakeUserActive(user)
答案 1 :(得分:0)
在将结构类型传递给变量时,必须将默认值设置为true,但这意味着您需要使用新的Active
字段扩展该结构。
type User struct {
Id int64 `json:"id"`
Name string `json:"name"`
Active bool
}
user := User{1, "John", true}
json:"id"
表示您将json解码的对象字段映射到结构类型中的字段id
。实际上,您将json字符串反序列化为对象字段,稍后您可以映射到结构中的特定字段。