Penukaran Rune ke Rentetan dalam Go
Apabila bekerja dengan aksara Unicode dalam Go, anda mungkin menghadapi situasi di mana anda perlu menukar rune ( integer mewakili aksara Unicode) kepada rentetan. Ini boleh mengelirukan, kerana Go menawarkan pelbagai pendekatan untuk tugas ini.
Menggunakan Pengimbas.Scan() (Salah)
Dalam kod yang anda berikan, anda попытаться untuk menggunakan Scanner.Scan() untuk menukar rune kepada rentetan. Walau bagaimanapun, pendekatan ini tidak betul kerana Scanner.Scan() bertujuan untuk tujuan lexing dan tidak mengembalikan aksara rune secara langsung. Sebaliknya, ia mengembalikan pemalar yang menunjukkan jenis token (seperti pengimbas.Ident atau pengimbas.Int).
Menggunakan Pengimbas.Next() (Betul)
Kepada menukar rune kepada rentetan dengan betul, anda harus menggunakan Scanner.Next() sebaliknya. Fungsi ini membaca rune seterusnya daripada input dan mengembalikannya sebagai integer. Anda kemudiannya boleh menggunakan fungsi strconv.QuoteRune() untuk menukar rune kepada rentetan.
var b scanner.Scanner const a = `a` b.Init(strings.NewReader(a)) c := b.Next() fmt.Println(strconv.QuoteRune(c)) // Output: "'a'"
Penukaran Rune Terus ke Rentetan
Jika anda mahu hanya menukar rune tunggal kepada rentetan, anda boleh menggunakan penukaran jenis. Rune ialah alias untuk int32 dan Go menyokong penukaran nilai integer kepada rentetan menggunakan fungsi rentetan() terbina dalam.
r := rune('a') fmt.Println(string(r)) // Output: "a"
Looping Over Rune
Kepada lelaran ke atas rune dalam rentetan, anda boleh menggunakan untuk ... julat binaan. Teknik ini mengembalikan kedua-dua indeks dan nilai rune untuk setiap aksara dalam rentetan.
for i, r := range "abc" { fmt.Printf("%d - %c (%v)\n", i, r, r) } // Output: // 0 - a (97) // 1 - b (98) // 2 - c (99)
Kaedah Alternatif
Kaedah lain untuk menukar rune kepada rentetan termasuk:
Atas ialah kandungan terperinci Bagaimanakah cara saya Menukar Rune kepada String dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!