Bagaimana cara menggabungkan sepotong string menjadi satu string?


130
package main

import (
"fmt"
"strings"
)

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

memberi saya kesalahan:

prog.go: 10: tidak dapat menggunakan reg (string tipe [3]) sebagai string tipe [] dalam argumen ke string.

Apakah ada cara yang lebih langsung / lebih baik daripada mengulang dan menambahkan ke var?


2
Mengapa tidak digunakan saja reg := []string {"a","b","c"}?
Sean M

Jawaban:


101

Judul pertanyaan Anda adalah:

Bagaimana cara menggabungkan sepotong string menjadi satu string?

namun pada kenyataannya, regadalah tidak sepotong, tapi panjang-tiga larik. [...]stringhanyalah gula sintaksis untuk (dalam hal ini) [3]string.

Untuk mendapatkan potongan yang sebenarnya, Anda harus menulis:

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

(Coba ini: https://play.golang.org/p/vqU5VtDilJ .)

Kebetulan, jika Anda benar-benar perlu menggabungkan larik string menjadi satu string, Anda bisa mendapatkan potongan dari larik dengan menambahkan [:], seperti:

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

(Coba ini: https://play.golang.org/p/zy8KyC8OTuJ .)


7
Tolong berikan kode kerja di jawaban itu sendiri, taman bermain adalah nilai tambah tetapi tidak cukup untuk jawaban yang dapat diterima ;-). TY!
shadyyx

8
@shadyyx: Saya setuju bahwa tautan taman bermain hanya bersifat tambahan; tapi saya tidak yakin apa yang menurut Anda hilang dari jawaban yang tepat. Satu-satunya kesalahan OP ada di baris 10, dan saya memberikan versi koreksi dari baris itu, bersama dengan penjelasannya. (Apakah Anda menyarankan agar saya menyalin seluruh contoh programnya ke dalam jawaban? Jika demikian, maka - saya tidak setuju.)
ruakh

1
"mencoba menggabungkan potongan menjadi string" Solusi Anda hanya berfungsi untuk potongan string, bukan jenis potongan umum.
Steven Roose


26

Ini masih relevan di 2018.

Untuk String

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

Kembali ke Slice lagi

import strings
fileSlice := strings.Split(stringFiles, ",")
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.