Comments 7
Хотелось бы всё же, чтобы были приведены условия, при которых не рекомендуется использовать указатель на слайс. Аргумент, что из-за ускорения на микросекунды лучше использовать указатель на слайс, выглядит неубедительно. Иначе во всех проектах только такой вариант стали бы использовать, это же микрооптимизация, и будем использовать везде вместо передачи по значению.
спасибо, очень хорошее замечание! Я добавил ссылки на материал по этой теме, чтобы статья сильно не разрослась. Передача и возврат указателей - частый вопрос не только новичков. Общее правило - передавать по значению, так же и отдавать. Это будет быстро и безопасно. Но как всегда есть исключения :)
Слайс — динамический массив, состоящий из трех элементов
Точно массив из трех элементов, а не структура с тремя полями?
Выделять слайс таким способом `slice := make([]int, 8)` зачастую приводит к ошибкам - при записи значения через индекс можно попасть за границы капасити и получить панику, а при append не очевидно, что добавляешь значения к нулям и после slice = append(s, 1,2,3) получится {0,0,0...,1,2,3}. На мой взгляд в большинстве случаев вариант создания `slice := make([]int, 0, 8)` и добавления значений через append
более предпочтительный.
Готовим слайсы в Go: подробно о динамических массивах, строчках и ускорении