func (NiggerPenis) Method(i int)
Для каких кейсов какой вариант?
В первом случае ты хочешь изменить ресивер, либо он очень большой и лучше передать как указатель. Во втором случае ты просто берешь значения из ресивера.
а еще в go можно вызывать методы от nil-ресивера а еще можно вызывать методы от пакета, передав ресивер первым параметром
осуждаю если что
1ый вариант - в функции у тебя инстанс объекта (или nil), во втором варианте, у тебя копия объекта
не подскажите, где об этом можно почитать подробнее?
в спецификации языка https://golang.org/ref/spec
https://tour.golang.org/methods/12
а еще можно замыкать методы над инстансами и использовать их где требуется указатель на функцию!
а второе это как?
"либо он очень большой" - а как именно это определяется?
Подозреваю, что достаточно просто на глаз, но можно и unsafe.Sizeof(object) сделать и посмотреть. Если мне не надо менять объект, и он с несколькими int`ами, к примеру, я его передам по значению. Если мне база отдала в структуру с 40 полями разных типов кучу информации, буду работать с указателем, чтоб лишний раз копированием не заниматься.
Обсуждают сегодня