Sobes.tech
Junior — Middle

Malo by sa v súčasnom kontexte použiť ukazovateľ na objekt typu Receiver?

sobes.tech AI

Odpoveď od AI

V Go je zvyčajne nepotrebný ukazovateľ na objekt typu Receiver, ak metóda nemení stav objektu alebo je objekt malý.

Použite ukazovateľ na Receiver, keď:

  • Musíte zmeniť stav objektu vnútri metódy.
  • Objekt je veľký a chcete sa vyhnúť kopírovaniu pri volaní metódy.

Ak metóda iba číta dáta a objekt je malý, môžete použiť hodnotu (bez ukazovateľa).

Príklad:

func (r *Receiver) UpdateValue(val int) {
    r.value = val // meníme stav, je potrebný ukazovateľ
}

func (r Receiver) PrintValue() {
    fmt.Println(r.value) // len čítanie, môže byť bez ukazovateľa
}

Rozhodnutie závisí od toho, či je potrebné meniť objekt a aký je veľký.