¿Cómo unir un trozo de cuerdas en una sola cuerda?

Resuelto cycle4passion asked hace 9 años • 3 respuestas
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?

cycle4passion avatar Mar 02 '15 04:03 cycle4passion
Aceptado

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 ).

ruakh avatar Mar 01 '2015 21:03 ruakh

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 .

Denys Séguret avatar Mar 01 '2015 21:03 Denys Séguret

Esto sigue siendo relevante en 2018.

Encadenar

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

Volver a Cortar de nuevo

import strings
fileSlice := strings.Split(stringFiles, ",")
Edwinner avatar Mar 12 '2018 01:03 Edwinner