tgoop.com/go_interview_lib/349
Create:
Last Update:
Last Update:
💬 Что из себя представляет механизм method value и чем он полезен?
Method value — механизм, который позволяет ссылаться на метод объекта с привязкой к конкретному экземпляру этого объекта. Это значит, что мы можем сохранить ссылку на метод определённого экземпляра и использовать эту ссылку для вызова метода позже, при этом метод автоматически будет вызываться для связанного с ним экземпляра.
📌 Как это работает: когда мы берём метод от экземпляра структуры или типа, Go автоматически создаёт функцию, которая "замыкает" этот экземпляр внутри себя. Эта функция при вызове будет применять метод к тому экземпляру, для которого она была создана.
📌 Пример:
type Counter struct {
value int
}
func (c *Counter) Increment() {
c.value++
}
func main() {
c := &Counter{value: 10}
increment := c.Increment // Сохраняем method value
increment() // Вызываем метод через сохранённую ссылку
fmt.Println(c.value) // Выведет 11
}
В примере
increment
является method value, которое привязано к конкретному экземпляру c
. Вызов increment()
эквивалентен вызову c.Increment()
.Method value особенно полезны в ситуациях, когда необходимо передать метод как аргумент функции или сохранить метод для последующего вызова. Это позволяет использовать методы объектов так, как если бы они были обычными функциями, при этом сохраняя контекст вызова внутри метода.
BY Библиотека Go для собеса | вопросы с собеседований
Share with your friend now:
tgoop.com/go_interview_lib/349