package main
import (
"fmt"
"strings"
)
func main() {
reg := [...]string {"a","b","c"}
fmt.Println(strings.Join(reg,","))
}
dá-me um erro de:
prog.go: 10: não é possível usar reg (digite [3] string) como tipo [] string no argumento de strings.Join
Existe uma maneira mais direta / melhor do que fazer loop e adicionar a um var?
reg := []string {"a","b","c"}
?Respostas:
O título da sua pergunta é:
mas, na verdade, não
reg
é uma fatia, mas uma matriz de comprimento e três. é apenas açúcar sintático para (neste caso) .[...]string
[3]string
Para obter uma fatia real, você deve escrever:
(Experimente: https://play.golang.org/p/vqU5VtDilJ .)
Aliás, se você realmente precisar juntar uma matriz de cadeias em uma única cadeia, poderá obter uma fatia da matriz adicionando
[:]
, da seguinte forma:(Experimente: https://play.golang.org/p/zy8KyC8OTuJ .)
fonte
Use uma fatia, não uma matriz. Basta criá-lo usando
Uma alternativa seria converter sua matriz em uma fatia ao ingressar:
Leia o blog Go sobre as diferenças entre fatias e matrizes .
fonte
Isso ainda é relevante em 2018.
Para sequenciar
Voltar ao Slice novamente
fonte