문자열 조각을 단일 문자열로 결합하는 방법은 무엇입니까?


129
package main

import (
"fmt"
"strings"
)

func main() {
reg := [...]string {"a","b","c"}
fmt.Println(strings.Join(reg,","))
}

다음과 같은 오류가 발생합니다.

prog.go : 10 : reg (유형 [3] string)을 문자열 인수의 [] string 유형으로 사용할 수 없습니다.

반복하고 var에 추가하는 것보다 더 직접적이고 더 나은 방법이 있습니까?


2
왜 그냥 사용하지 reg := []string {"a","b","c"}않습니까?
Sean M

답변:


100

질문 제목은 다음과 같습니다.

문자열 조각을 단일 문자열로 결합하는 방법은 무엇입니까?

하지만 사실 reg입니다 하지 슬라이스하지만, 길이 세 배열입니다. [...]string(이 경우)에 대한 구문 설탕입니다 [3]string.

실제 조각을 얻으려면 다음과 같이 작성해야합니다.

reg := []string {"a","b","c"}

(해보기 : https://play.golang.org/p/vqU5VtDilJ .)

우연히도 문자열 배열을 단일 문자열로 결합해야하는 경우 다음과 같이을 추가하여 배열에서 슬라이스를 가져올 수 있습니다 [:].

fmt.Println(strings.Join(reg[:], ","))

(사용해보세요 : https://play.golang.org/p/zy8KyC8OTuJ .)


7
Pls, 답변 자체에 작업 코드를 제공하십시오. 놀이터는 플러스이지만 수용 가능한 답변에는 충분하지 않습니다 .-). 타이!
shadyyx

8
@shadyyx : 놀이터 링크가 엄격하게 보완된다는 데 동의합니다. 그러나 올바른 대답에서 누락되었다고 생각하는 것이 무엇인지 잘 모르겠습니다. OP의 유일한 오류는 10 행에 있었고 설명과 함께 해당 행의 수정 된 버전을 제공했습니다. (그 / 그녀의 전체 예제 프로그램을 답에 복사해야한다고 제안하는 건가요? 그렇다면, 동의하지 않습니다.)
ruakh

1
"슬라이스를 문자열로 결합하려고 시도"솔루션 은 일반적인 슬라이스 유형 대신 문자열 슬라이스에 대해서만 작동 합니다.
Steven Roose


26

이것은 2018 년에도 여전히 관련이 있습니다.

문자열로

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

다시 슬라이스로 돌아 가기

import strings
fileSlice := strings.Split(stringFiles, ",")
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.