Использование везде указателей ухудшает читаемость кода, потому что становится непонятно меняет ли что-то в объекте по этому указателю метод, куда этот объект передается. Если бы передавалось по значению, то точно объект оставался бы не тронутым. С другой стороны копирование по стеку туда-сюда возможно менее эффективно, чем размещение объекта в куче. А возможно и более - это зависит от каждого конкретного случая. Я лично ратую за читаемость.
В общем да, падает читабельность. Поэтому стараюсь избегать указателей лишний раз
Вы никак не аргументировали почему у структуры всегда должен быть указатель. Я вам привел пример из стандартной библиотеки, где time.Time является структурой и не возвращается по указателю, а имеет метод IsZero()
в time.Time очевидно, что если секунд 0 - значит пусто. В случае со структурой а) метод не реализован б) это неочевидно и не надо передергивать, аргументы все на месте
в time.Time очевидно, что если секунд 0 - значит пусто. В случае со структурой а) метод не реализован б) это неочевидно и не надо передергивать, аргументы все на месте
если айдишник zero value, то очевидно, что пусто 🤷♂️
жирные структуры дорого гонять не указателем. ну и насколько я помню struct => interface{} приводит к аллокации
Аллокация зависит от результатов escape analysis. В частности при передаче и возвращения указателей для типа в функции и обратно увеличивается score и повышается вероятность размещения на куче, вместо стека.
Аллокация зависит от результатов escape analysis. В частности при передаче и возвращения указателей для типа в функции и обратно увеличивается score и повышается вероятность размещения на куче, вместо стека.