Menukar Rune kepada Rentetan dalam Go
Dalam Go, adalah mungkin untuk menghantar rune (titik kod Unicode) ke dalam rentetan. Ini boleh berguna untuk pelbagai operasi yang memerlukan manipulasi rentetan.
Satu cara untuk menukar rune kepada rentetan ialah menggunakan fungsi strconv.QuoteRune(). Walau bagaimanapun, sesetengah pengguna mungkin menghadapi aksara yang tidak ditentukan apabila menggunakan kaedah ini.
Untuk menyelesaikan isu ini, adalah penting untuk memahami cara fungsi Scanner.Scan() beroperasi. Scanner.Scan() direka bentuk untuk mengimbas input, yang bermaksud ia mengenali simbol dan token khas yang dikawal oleh bitmask Scanner.Mode. Apabila menggunakan Scanner.Scan() pada rune, ia mengembalikan pemalar khas daripada pakej teks/pengimbas, bukan rune itu sendiri.
Untuk membaca rune tunggal, disyorkan untuk menggunakan Scanner.Next() sebaliknya :
c := b.Next()
Ini akan menetapkan rune 'a' kepada pembolehubah c, dan anda boleh menukarnya kepada rentetan menggunakan pemutus rentetan:
fmt.Println(c, string(c))
Jika anda hanya perlu menukar rune tunggal kepada rentetan, anda boleh menggunakan penukaran jenis asas. Memandangkan rune ialah alias untuk int32, penukaran integer boleh digunakan secara langsung:
r := rune('a') fmt.Println(r, string(r))
Untuk mengulangi rune rentetan, anda boleh menggunakan binaan untuk ... julat:
for i, r := range "abc" { fmt.Printf("%d - %c (%v)\n", i, r, r) }
Anda juga boleh menukar rentetan kepada kepingan rune menggunakan utf8.DecodeRuneInString():
fmt.Println([]rune("abc"))
Ingat, apabila menggunakan kaedah Scanner.Scan() dengan mod Go Token, ia menganggap rune seperti Pengecam Go, jadi adalah penting untuk menggunakan Scanner.Next() untuk bacaan rune yang tepat.
Atas ialah kandungan terperinci Bagaimana untuk Menukar Runes kepada Rentetan dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!