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
Lepaskan: 2024-11-19 11:45:03
asal
377 orang telah melayarinya

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'"
Salin selepas log masuk

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"
Salin selepas log masuk

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)
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan