gpt4 book ai didi

types - struct{a int;b int} 和 struct{b int;a int} 有什么区别?

转载 作者:IT王子 更新时间:2023-10-29 01:23:24 31 4
gpt4 key购买 nike

这两个结构除了不被认为是等效的之外还有什么区别?

package main
func 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 main
func main() {}
func f1(s struct{a int;b int}) { f2(s) }
func f2(s struct{a int;b int}) {}

最佳答案

"The order of structs' fields is important on the low level" How?

这会影响反射,比如func (v Value) Field(i int) Value :

Field returns the i'th field of the struct v

第一个结构中的第一个字段“a”在第二个结构中将不相同。
这也会影响 marshaler methods (encoding package)序列化 .

关于types - struct{a int;b int} 和 struct{b int;a int} 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25508759/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com