Pointer receiver vs value receiver?

Middle
414 просмотров
AFK Offer AI

Value receiver (func (t T) Method()) — получает копию, не может менять оригинал. Pointer receiver (func (t *T) Method()) — получает указатель, может менять. Правила выбора: если метод меняет состояние — pointer. Если структура большая — pointer (не копировать). Если хоть один метод pointer — все делай pointer (consistency). Для маленьких immutable типов (Point, Color) — value. Важно для method set: value receiver доступен и для T, и для *T. Pointer receiver — только для *T. Это влияет на то, какие интерфейсы тип реализует.

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

Что такое TCP handshake?