Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah cara saya Menukar Rune kepada String dalam Go?

Bagaimanakah cara saya Menukar Rune kepada String dalam Go?

Barbara Streisand
Barbara Streisandasal
2024-11-19 11:45:03396semak imbas

How do I Convert a Rune to a String in Go?

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:

  • utf8.DecodeRuneInString(): Menyahkod satu rune yang dikodkan UTF-8 daripada rentetan yang disediakan.
  • []rune(): Menukar rentetan kepada hirisan rune.

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn