如何解决Golang运算符重载?
是的,使用指针接收器:
func (a *A) AddValue(v A) {
a.value1 += v.value1
a.value2 += v.value2
}
A
Add()
func (a *A) Add(v *A) {
a.value1 += v.value1
a.value2 += v.value2
}
因此使用它:
x, y := &A{1, 2}, &A{3, 4}
x.Add(y)
fmt.Println(x) // Prints &{4 6}
Add()
a, b := A{1, 2}, A{3, 4}
a.Add(&b)
fmt.Println(a)
a.Add()(&a).Add()