package main
import (
"fmt"
"strings"
)
func main() {
reg := [...]string {"a","b","c"}
fmt.Println(strings.Join(reg,","))
}
次のエラーが表示されます:
prog.go:10:文字列への引数で型[] stringとしてreg(型[3] string)を使用できません。
ループして変数に追加するよりも直接/より良い方法はありますか?
質問のタイトルは次のとおりです。
文字列のスライスを単一の文字列に結合する方法は?
しかし、実際、reg
はnotスライスではなく、長さ3の配列です。 [...]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 。)
アレーではなくスライスを使用します。を使用して作成するだけです
reg := []string {"a","b","c"}
別の方法は、結合時に配列をスライスに変換することです。
fmt.Println(strings.Join(reg[:],","))
スライスと配列の違いについてのGoブログ を読んでください。
文字列へ
import strings
stringFiles := strings.Join(fileSlice[:], ",")
再びスライスに戻る
import strings
fileSlice := strings.Split(stringFiles, ",")