文字列のスライスを1つの文字列に結合する方法は?


129
package main

import (
"fmt"
"strings"
)

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

私にエラーを与えます:

prog.go:10:文字列への引数では、タイプ[] stringとしてreg(タイプ[3]文字列)を使用できません。結合

ループして変数に追加するよりも直接的な方法がありますか?


2
なぜ使用しないのreg := []string {"a","b","c"}ですか?
Sean M

回答:


100

質問のタイトルは次のとおりです。

文字列のスライスを1つの文字列に結合する方法は?

実際に、regあるいないスライスが、長さ3の配列。[...]string(この場合)の構文糖です[3]string

実際のスライスを取得するには、次のように記述する必要があります。

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

(試してみてください:https : //play.golang.org/p/vqU5VtDilJ

ちなみに、文字列の配列を1つの文字列に結合する必要がある場合は[:]、次のようにを追加して配列からスライスを取得できます。

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

(試してみてください:https : //play.golang.org/p/zy8KyC8OTuJ


7
Pls、答え自体に作業コードを提供してください。遊び場はプラスですが、受け入れられる答えには不十分です;-)。TY!
shadyyx 2016年

8
@shadyyx:プレイグラウンドリンクは厳密に補足であることに同意します。しかし、あなたが適切な答えから何が欠けていると思うかはわかりません。OPの唯一のエラーは10行目にあり、その行の修正バージョンと説明を提供しました。(あなたは私に彼/彼女のサンプルプログラム全体を答えにコピーするべきだったことを示唆していますか?そうであるなら、私は同意しません。)
ruakh

1
「スライスを文字列に結合しようとしています」このソリューションは、一般的なスライスタイプではなく、文字列のスライスに対してのみ機能します。
スティーブンルース2017


26

これは2018年にも関係があります。

文字列に

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

もう一度スライスに戻る

import strings
fileSlice := strings.Split(stringFiles, ",")
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.