Перегрузка оператора Голанга
Я понимаю, что golang не обеспечивает перегрузку операторов, так как считает, что это увеличивает сложность.
Поэтому я хочу реализовать это непосредственно для структур.
package main
import "fmt"
type A struct {
value1 int
value2 int
}
func (a A) AddValue(v A) A {
a.value1 += v.value1
a.value2 += v.value2
return a
}
func main() {
x, z := A{1, 2}, A{1, 2}
y := A{3, 4}
x = x.AddValue(y)
z.value1 += y.value1
z.value2 += y.value2
fmt.Println(x)
fmt.Println(z)
}
https://play.golang.org/p/1U8omyF8-V
Из приведенного выше кода,Добавить значение работает как я хочу. Однако меня беспокоит только то, что это передача по значению, и поэтому я должен возвращать вновь добавленную стоимость каждый раз.
Есть ли другой лучший способ, чтобы избежать возврата суммированной переменной.