gpt4 book ai didi

go - 为什么克隆的结构值仍然等于原始结构

转载 作者:行者123 更新时间:2023-12-02 11:25:10 25 4
gpt4 key购买 nike

我创建了以下界面:

type cloneable interface {
clone() cloneable
}
还有一个 person结构(实现 cloneable):
type person struct {
firstName string
lastName string
age int
}

func (p person) clone() person {
return person{p.firstName, p.lastName, p.age}
}
现在我尝试像这样克隆我的个人值(value):
p1 := person{"name", "last", 22}
p2 := p1.clone()

fmt.Println(p2 == p1) // PRINTS 'true', why?
clone 方法按预期工作,但为什么 p2 等于 p1?这些都是值,而不是引用,它们怎么可能相等?

最佳答案

如果第一个结构体的所有字段类型都是 comparable,则两个结构体将相等。并且所有对应的字段值为 equal .
如果您的结构至少有一个 function或者一个不可比较的值,那么你不能比较两个结构

关于go - 为什么克隆的结构值仍然等于原始结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64412394/

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