为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
江户川乱折腾 2021-12-13 11:04:06
我有一个对应于实体的用户结构。如何添加新属性active并将默认值设置为true?我还可以true通过一些简单的方法为所有现有实体设置该属性的值吗?type User struct {    Id              int64     `json:"id"`    Name            string    `json:"name"`}额外问题:我不太了解结构中的语法。三列代表什么?JSON 字符串周围有什么?
查看完整描述

2 回答

?
森林海

TA贡献2011条经验 获得超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 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)

你可以看到它的工作原理https://play.golang.org/p/UU7RAn5RVK


查看完整回答
反对 回复 2021-12-13
?
侃侃无极

TA贡献2051条经验 获得超10个赞

在将结构类型传递给变量时,您必须将默认值设置为 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 字符串反序列化为对象字段,稍后您可以将其映射到结构中的特定字段。


查看完整回答
反对 回复 2021-12-13
  • 2 回答
  • 0 关注
  • 323 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号