Menukar int32 kepada String in Go
Adalah mudah untuk menukar int32 kepada rentetan untuk pelbagai senario pengaturcaraan. Dalam Go, terdapat berbilang pendekatan untuk mencapai penukaran ini.
Penyelesaian yang mudah ialah menggunakan fmt.Sprint(i), yang menggunakan format lalai untuk nilai int32. Walau bagaimanapun, kaedah ini melibatkan penukaran dalaman, menjadikannya lebih perlahan berbanding pilihan lain.
Fungsi Penukaran Tersuai
Untuk prestasi optimum, pertimbangkan untuk menulis fungsi penukaran tersuai:
func String(n int32) string { buf := [11]byte{} pos := len(buf) i := int64(n) signed := i < 0 if signed { i = -i } for { pos-- buf[pos], i = '0'+byte(i%10), i/10 if i == 0 { if signed { pos-- buf[pos] = '-' } return string(buf[pos:]) } } }
Fungsi ini secara berulang membina perwakilan rentetan nilai int32, menghasilkan prestasi yang lebih pantas.
Menggunakan strconv.Itoa
Pilihan lain ialah dengan gunakan strconv.Itoa(int(i)), yang menawarkan pendekatan yang lebih pantas berbanding fmt.Sprint(i):
s := strconv.Itoa(int(i))
Walau bagaimanapun, kaedah ini memerlukan penukaran perantaraan daripada int32 kepada int.
Menggunakan strconv.FormatInt
Serupa dengan strconv.Itoa, strconv.FormatInt(int64(i), 10) menyediakan penyelesaian berprestasi untuk penukaran int32 kepada rentetan. Ia memerlukan penukaran perantaraan daripada int32 kepada int64, tetapi menawarkan prestasi yang lebih baik berbanding fmt.Sprint(i):
s := strconv.FormatInt(int64(i), 10)
Perbandingan Penanda Aras
Menjalankan penanda aras pada penukaran ini kaedah mendedahkan perbezaan prestasi:
String: 5.5923198s String2: 5.5923199s strconv.Itoa: 5.9763418s strconv.FormatInt: 5.9133382s fmt.Sprint: 13.5697761s
Seperti yang terbukti daripada keputusan, fungsi penukaran tersuai (String) dan String2 menawarkan masa penukaran terpantas.
Akhirnya, pilihan kaedah penukaran bergantung mengenai keperluan prestasi khusus dan pertimbangan kerumitan aplikasi. Untuk senario di mana kelajuan adalah kritikal, fungsi penukaran tersuai menyediakan penyelesaian yang optimum.
Atas ialah kandungan terperinci Bagaimana untuk menukar int32 kepada rentetan dengan cekap dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!