В Go метод можно определить с value receiver (func (s Server) Start()) или pointer receiver (func (s *Server) Start()). Value receiver получает копию структуры — изменения внутри метода не затронут оригинал. Pointer receiver работает с оригиналом и может его менять. Ещё важная разница: pointer receiver не копирует всю структуру, что экономит память для больших типов. Обычно на практике используют pointer receiver для всех методов типа, чтобы не путаться.
Как работает method receiver — pointer vs value?
Middle
1.1k просмотровAFK Offer AI
Как работает go build?