如何将新的布尔属性添加到 Golang 结构并将默认值设置为 true?

我有一个对应于实体的用户结构。如何添加新属性active并将默认值设置为true?


我还可以true通过一些简单的方法为所有现有实体设置该属性的值吗?


type User struct {

    Id              int64     `json:"id"`

    Name            string    `json:"name"`

}

额外问题:我不太了解结构中的语法。三列代表什么?JSON 字符串周围有什么?


江户川乱折腾
浏览 324回答 2
2回答

森林海

//You can't change declared type.type User struct {    Id              int64     `json:"id"`    Name            string    `json:"name"`}//Instead you construct a new one embedding existenttype ActiveUser struct {    User    Active bool}//you instantiate type literallyuser := User{1, "John"}//and you can provide constructor for your typefunc MakeUserActive(u User) ActiveUser {    auser := ActiveUser{u, true}    return auser}activeuser := MakeUserActive(user)你可以看到它的工作原理https://play.golang.org/p/UU7RAn5RVK

侃侃无极

在将结构类型传递给变量时,您必须将默认值设置为 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 字符串反序列化为对象字段,稍后您可以将其映射到结构中的特定字段。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go