⭐️ Что означает звёздочка у ресивера в Go
Звёздочка у ресивера в Go, как правило, означает, что мы работаем с указателем на тип, а не с самим значением этого типа. То есть, когда мы видим звёздочку перед типом, это указывает на то, что переменная является указателем.
Пример:
var ptr *int // указатель на int
Если у нас есть переменная типа *int, то её значение — это адрес в памяти, где хранится переменная типа int. Чтобы получить доступ к значению по этому адресу, нужно использовать оператор разыменования (тоже звёздочку):
var a int = 58
var ptr *int = &a // ptr теперь указывает на a
fmt.Println(*ptr) // выводит 58
Таким образом, звёздочка перед типом указывает на то, что переменная хранит не само значение, а ссылку на него. Это важно для работы с памятью, передачи данных без копирования и работы с большими структурами или массивами, чтобы не тратить ресурсы на их копирование.
🐸
Библиотека Go для собеса