Junior — Middle
Каква функция изпълнява обектът receiver с указател към звездичката?
sobes.tech AI
Отговор от AI
В Go, обектният приемник с указател (например, func (r *ReceiverType) Method()) позволява на метода да променя състоянието на самия обект, към който сочи приемникът. Използването на указател вместо стойност предоставя следните предимства:
- Позволява да се променят полетата на структурата вътре в метода.
- Избягва копирането на големи структури при извикване на метода, което подобрява производителността.
- Осигурява последователност, ако други методи приемат указатели.
Пример:
type Counter struct {
count int
}
func (c *Counter) Increment() {
c.count++ // променя полето на структурата чрез указател
}
func main() {
c := Counter{}
c.Increment()
fmt.Println(c.count) // Ще изведе 1
}