¿Cómo unir un trozo de cuerdas en una sola cuerda?
package main
import (
"fmt"
"strings"
)
func main() {
reg := [...]string {"a","b","c"}
fmt.Println(strings.Join(reg,","))
}
me da un error de:
prog.go:10: no se puede usar reg (escriba [3]cadena) como tipo []cadena en el argumento de strings.Join
¿Existe una manera más directa/mejor que hacer un bucle y agregar a una var?
El título de su pregunta es:
¿Cómo unir un trozo de cuerdas en una sola cuerda?
pero en realidad noreg
es un segmento, sino una matriz de longitud tres. es solo azúcar sintáctico para (en este caso) .[...]string
[3]string
Para obtener una porción real, debes escribir:
reg := []string {"a","b","c"}
(Pruébelo: https://play.golang.org/p/vqU5VtDilJ ).
Por cierto, si alguna vez realmente necesitas unir una serie de cadenas en una sola cadena, puedes obtener una porción de la matriz agregando [:]
, así:
fmt.Println(strings.Join(reg[:], ","))
(Pruébelo: https://play.golang.org/p/zy8KyC8OTuJ ).
Utilice una porción, no una matriz. Simplemente créelo usando
reg := []string {"a","b","c"}
Una alternativa habría sido convertir su matriz en un segmento al unirse:
fmt.Println(strings.Join(reg[:],","))
Lea el blog de Go sobre las diferencias entre sectores y matrices .
Esto sigue siendo relevante en 2018.
Encadenar
import strings
stringFiles := strings.Join(fileSlice[:], ",")
Volver a Cortar de nuevo
import strings
fileSlice := strings.Split(stringFiles, ",")