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ý.