i := 123
s := string(i)
s adalah 'E', tetapi yang saya inginkan adalah "123"
Tolong beritahu saya bagaimana saya bisa mendapatkan "123".
Dan di Jawa, saya bisa melakukannya dengan cara ini:
String s = "ab" + "c" // s is "abc"
bagaimana saya bisa concat
dua string di Go?
string
go
int
converters
hardPass
sumber
sumber
Jawaban:
Gunakan fungsi
strconv
paketItoa
.Sebagai contoh:
Anda dapat membuat string hanya dengan
+
memasukkannya, atau dengan menggunakanJoin
fungsistrings
paket.sumber
Jika Anda tahu jenis nilai spesifik gunakan formatter yang sesuai misalnya
%d
untukint
Info lebih lanjut - fmt
sumber
%d
untuk int - iniSangat menarik untuk dicatat bahwa
strconv.Itoa
adalah singkatan untukdengan basis 10
Sebagai contoh:
setara dengan
sumber
fmt.Sprintf
,strconv.Itoa
danstrconv.FormatInt
akan melakukan pekerjaan itu. TetapiSprintf
akan menggunakan paketreflect
, dan akan mengalokasikan satu objek lagi, jadi itu bukan pilihan yang efisien.sumber
Anda dapat menggunakan fmt.Sprintf
Lihat http://play.golang.org/p/bXb1vjYbyc misalnya.
sumber
Dalam hal ini keduanya
strconv
danfmt.Sprintf
melakukan pekerjaan yang sama tetapi menggunakan fungsistrconv
paketItoa
adalah pilihan terbaik, karenafmt.Sprintf
mengalokasikan satu objek lagi selama konversi.periksa patokan di sini: https://gist.github.com/evalphobia/caee1602969a640a4530
lihat https://play.golang.org/p/hlaz_rMa0D misalnya.
sumber
fmt.Sprintf
danstrconv.iota
serupa dalam hal kemudahan penggunaan dan data di atas menunjukkan iota menjadi lebih cepat dengan dampak GC yang lebih rendah, tampaknyaiota
harus digunakan secara umum ketika bilangan bulat tunggal perlu dikonversi.Konversi
int64
:sumber
ok, kebanyakan dari mereka telah menunjukkan Anda sesuatu yang baik. Biarkan saya memberi Anda ini:
sumber
sumber