package main
import (
"fmt"
"strings"
)
func main() {
reg := [...]string {"a","b","c"}
fmt.Println(strings.Join(reg,","))
}
дает мне ошибку:
prog.go: 10: нельзя использовать reg (строка типа [3]) в качестве строки типа [] в аргументе строки.
Есть ли более прямой / лучший способ, чем цикл и добавление в var?
reg := []string {"a","b","c"}
?Ответы:
Заголовок вашего вопроса:
но на самом деле
reg
это не срез, а массив длиной три.[...]string
просто синтаксический сахар для (в данном случае)[3]string
.Чтобы получить настоящий срез, вы должны написать:
(Попробуйте: https://play.golang.org/p/vqU5VtDilJ .)
Между прочим, если вам когда-либо действительно понадобится объединить массив строк в одну строку, вы можете получить фрагмент из массива, добавив
[:]
, например, так:(Попробуйте: https://play.golang.org/p/zy8KyC8OTuJ .)
источник
Используйте срез, а не массив. Просто создайте его, используя
Альтернативой было бы преобразование вашего массива в срез при присоединении:
Прочтите блог Go о различиях между срезами и массивами .
источник
Это по-прежнему актуально в 2018 году.
Нанизывать
Вернуться к Slice снова
источник