hexlet-basics / exercises-go

GO
https://ru.code-basics.com/languages/go
18 stars 46 forks source link

(30/15) improve solution #119

Closed ashikov closed 2 years ago

ashikov commented 2 years ago

Не совсем понятно зачем использовать массив, когда можно просто конкатенировать строки без лишних преобразований типов. Зарефакторил решение.

ashikov commented 2 years ago

@forPelevin, глянь, пожалуйста

forPelevin commented 2 years ago

Конкатенация стоит дороже из-за аллокации новой строки на каждой итерации. Так как в данном случае мы знаем размер результирующей строки мы можем преаллоцировать слайс нужного размера, а потом работать с ним

forPelevin commented 2 years ago

Это может показаться как превентивная оптимизация в рамках тренировочной задачи, но, считаю, что студентам лучше привыкать к гошным подходам, и данная имплементация лучше показывает, что строки — это просто массив байт

ashikov commented 2 years ago

Спасибо за объяснение! Теперь все стало ясно. PR закрываю.