2 回答

TA貢獻(xiàn)2011條經(jīng)驗(yàn) 獲得超2個(gè)贊
//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

TA貢獻(xiàn)2051條經(jīng)驗(yàn) 獲得超10個(gè)贊
在將結(jié)構(gòu)類(lèi)型傳遞給變量時(shí),您必須將默認(rèn)值設(shè)置為 true,但這意味著您需要使用新Active字段擴(kuò)展該結(jié)構(gòu)。
type User struct {
Id int64 `json:"id"`
Name string `json:"name"`
Active bool
}
user := User{1, "John", true}
json:"id"意味著您將 json 解碼的對(duì)象字段映射到id結(jié)構(gòu)類(lèi)型中的字段。實(shí)際上,您將 json 字符串反序列化為對(duì)象字段,稍后您可以將其映射到結(jié)構(gòu)中的特定字段。
- 2 回答
- 0 關(guān)注
- 306 瀏覽
添加回答
舉報(bào)