Что не так: type Counter struct { n int }; func (c Counter) Inc() { c.n++ }?

Junior
186 просмотров
AFK Offer AI

Inc не работает — receiver по значению (Counter), модификация теряется. Нужен pointer receiver: func (c *Counter) Inc() { c.n++ }. Коварство: код компилируется и работает без ошибок, просто counter всегда 0. Go позволяет вызывать pointer methods на values (автоматический &), но value receiver всегда копирует. Classic gotcha.

Следующий вопрос

Как работает pod scheduling?