有个
type A struct {
B struct {
Count  int json:"count"
Status int json:"status"
} json:"b"
}
用 A{B{Count: 112,Status: 112}}报我没有定义 B 请教请教,查了一天资料还没搞定。
|      1miencun OP 对了,我不想用 var a A a.B.Count = 1 a.B.Status = 2 这种直接赋值的方法 | 
|      2yrj      2020-11-17 12:09:45 +08:00 via iPad 那就 type 一个 b 呗。 type b struct…… | 
|  |      3gy0624ww      2020-11-17 12:09:52 +08:00 type B struct { Count int `json:"count"` Status int `json:"status"` } type A struct { B `json:"B"` } func main() { a := A{B{ Count: 11, Status: 10, }} fmt.Println(a) } | 
|      4miencun OP | 
|      5zealic      2020-11-17 12:35:05 +08:00  1 ```go type A struct { B struct { Count int `json:"count"` Status int `json:"status"` } `json:"b"` } _ := A{ B: struct { Count int `json:"count"` Status int `json:"status"` } {Count: 1, Status: 2}, } ``` 这个玩法并不好,反而更繁琐,如要保持类型的反射匿名可以用 type def ```go type X = struct { Count int `json:"count"` Status int `json:"status"` } ``` | 
|  |      6keepeye      2020-11-17 12:42:09 +08:00 只能拆出来定义 | 
|  |      7airplayxcom      2020-11-17 13:23:21 +08:00 via iPhone 我杀我自己? | 
|  |      8index90      2020-11-17 19:18:22 +08:00 A{B: struct { Count int `json:"count"` Status int `json:"status"` }{Count: 1, Status: 2}} B 不是类型名,是字段名 type A 里面的 struct 是一个匿名类型 实例化的时候,需要签名一致,tag 部分也要一样 | 
|  |      10sunshinev      2020-11-27 18:01:31 +08:00 为啥总是有些奇奇怪怪的用法 |