Как объединить фрагмент строки в одну строку?
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?
Ответы
Ответ 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, ",")