Подтвердить что ты не робот

Как объединить фрагмент строки в одну строку?

package main

import (
"fmt"
"strings"
)

func main() {
reg := [...]string {"a","b","c"}
fmt.Println(strings.Join(reg,","))
}

дает ошибку:

prog.go: 10: не может использовать reg (type [3] string) как type [] string в аргументе string.Join

Есть ли более прямой/лучший способ, чем цикл и добавление в var?

4b9b3361

Ответ 1

Название вашего вопроса:

Как объединить фрагмент строки в одну строку?

но на самом деле, reg - это не фрагмент, а массив длины три. [...]string является просто синтаксическим сахаром для (в данном случае) [3]string.

Чтобы получить реальный срез, вы должны написать:

reg := []string {"a","b","c"}

(Попробуйте: http://play.golang.org/p/vqU5VtDilJ.)

Ответ 2

Используйте срез, а не фрагмент. Просто создайте его, используя

reg := []string {"a","b","c"}

Альтернативой было бы преобразование вашего массива в срез при объединении:

fmt.Println(strings.Join(reg[:],","))

Прочитайте блог Go о различиях между срезами и массивами.

Ответ 3

Это все еще актуально в 2018 году.

Нанизывать

import strings
stringFiles := strings.Join(fileSlice[:], ",")

Вернуться к слайсу снова

import strings
fileSlice := strings.Split(stringFiles, ",")