有个
type A struct {
B struct {
Count int json:"count"
Status int json:"status"
} json:"b"
}
用 A{B{Count: 112,Status: 112}}报我没有定义 B 请教请教,查了一天资料还没搞定。
有个
type A struct {
B struct {
Count int json:"count"
Status int json:"status"
} json:"b"
}
用 A{B{Count: 112,Status: 112}}报我没有定义 B 请教请教,查了一天资料还没搞定。
|
1
对了,我不想用
var a A a.B.Count = 1 a.B.Status = 2 这种直接赋值的方法 |
|
yrjNov 17, 2020 via iPad
2
那就 type 一个 b 呗。
type b struct…… |
|
gy0624wwNov 17, 2020
3
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) } |
|
5
```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"` } ``` |
|
keepeyeNov 17, 2020
6
只能拆出来定义
|
|
AdrielNov 17, 2020 via iPhone
7
我杀我自己?
|
|
index90Nov 17, 2020
8
A{B: struct {
Count int `json:"count"` Status int `json:"status"` }{Count: 1, Status: 2}} B 不是类型名,是字段名 type A 里面的 struct 是一个匿名类型 实例化的时候,需要签名一致,tag 部分也要一样 |
|
sunshinevNov 27, 2020
10
为啥总是有些奇奇怪怪的用法
|