Operador de sobrecarga de Golang

Entiendo que golang no proporciona sobrecarga del operador, ya que cree que está aumentando la complejidad.

Entonces quiero implementar eso para estructuras directamente.

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

Del código anterior, elAñadir valor funciona como yo quiero. Sin embargo, mi única preocupación es que es un pase por valor y, por lo tanto, tengo que devolver el nuevo valor agregado cada vez.

¿Existe algún otro método mejor para evitar devolver la variable resumida?

Respuestas a la pregunta(1)

Su respuesta a la pregunta