除了它们不被认为是等效的之外,这两个结构之间有什么区别?package mainfunc main() {}func f1(s struct{a int;b int}) { f2(s) }func f2(s struct{b int;a int}) {}$ go run a.go # command-line-arguments./a.go:3: cannot use s (type struct { a int; b int }) as type struct { b int; a int } in argument to f2注意:这确实编译:package mainfunc main() {}func f1(s struct{a int;b int}) { f2(s) }func f2(s struct{a int;b int}) {}
3 回答
ITMISS
TA贡献1871条经验 获得超8个赞
“结构字段的顺序在低级别很重要”如何?
这将影响反射,例如func (v Value) Field(i int) Value
:
Field 返回结构体 v 的第 i 个字段
第一个结构中的第一个字段 'a' 与第二个结构中的第一个字段不同。
这也将影响使用封送拆收器方法(编码包)的序列化。
- 3 回答
- 0 关注
- 296 浏览
添加回答
举报
0/150
提交
取消