Помимо встроенного оператора +, в Go есть много других способов для конкатенации строк. Далее будет дана простая инструкция для конкатенации, или слияния строк с помощью пакета bytes и встроенной функции copy.

Как конкатенировать строки в Golang?

1. Создайте файл concat_buffer.go со следующим содержимым:

Премиум 👑 канал по Golang

Рекомендуем вам супер TELEGRAM канал по Golang где собраны все материалы для качественного изучения языка. Удивите всех своими знаниями на собеседовании! 😎

Подписаться на канал

Уроки, статьи и Видео

Мы публикуем в паблике ВК и Telegram качественные обучающие материалы для быстрого изучения Go. Подпишитесь на нас в ВК и в Telegram. Поддержите сообщество Go программистов.

Go в ВК ЧАТ в Telegram


2. Запустите код через go run concat_buffer.go;
3. Посмотрите на вывод в терминале:

конкатенация строк golang

4. Создайте файл concat_copy.go со следующим содержимым:

5. Запустите код через go run concat_copy.go;
6. Посмотрите на результат в терминале:

конкатенация строк

Код слияния строк в Golang

В шагах 1-3 описывается использование Buffer из пакета bytes в качестве отличного (в плане производительности) решения конкатенации строк. Структура Buffer имплементирует метод WriteString, что может использоваться для эффективной конкатенации строк в базовый байтовый срез.

Нет нужды использовать данное решение во всех случаях. Просто помните о нем, когда программа должна конкатенировать крупное число строк. К примеру, экспорт содержимого большого CSV-файла и прочих.

Встроенная функция copy из шагов 4-6 может использоваться для конкатенации string. Данный метод требует некоторых предположений касательно длины финальной строки, он также может использоваться на ходу. Однако, если вместимость буфера места написания результата меньше уже написанной части и добавленной строки, буфер требуется расширить. Это обычно делается через выделение нового среза с большей вместимостью.

Сравнение способов конкатенации в Golang

Сравним несколько способов конкатенации строк в Golang. Это использование оператора +, bytes.Buffer и встроенной функции copy.

1. Создайте папку bench и файл bench_test.go внутри со следующем содержимым:

2. Посмотрите на результаты в терминале:

конкатенация golang

5 1 голос
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии