Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Mendapatkan Nilai Unikod Aksara dalam Go?

Bagaimana untuk Mendapatkan Nilai Unikod Aksara dalam Go?

Mary-Kate Olsen
Lepaskan: 2024-11-04 07:36:01
asal
612 orang telah melayarinya

How to Get the Unicode Value of a Character in Go?

Go Equivalent of JavaScript's charCodeAt() Method

Kaedah charCodeAt() dalam JavaScript mendapatkan semula nilai Unicode berangka aksara pada spesifik indeks dalam rentetan Contohnya:

<code class="javascript">"s".charCodeAt(0) // returns 115</code>
Salin selepas log masuk

Dalam Go, jenis aksara ialah rune, yang merupakan alias bagi int32 dan dirinya sendiri ialah nombor. Oleh itu, anda boleh mendapatkan nilai Unicode berangka dengan mencetak terus.

Untuk mendapatkan aksara pada kedudukan yang ditentukan, cara paling mudah ialah menukar rentetan kepada []rune dan kemudian menggunakan indeks. Cara untuk menukar rentetan kepada rune ialah taipkan penukaran []rune("some string"):

<code class="go">fmt.Println([]rune("s")[0])</code>
Salin selepas log masuk

Output:

115
Salin selepas log masuk

Untuk mencetak sebagai aksara, gunakan % c Format aksara String:

<code class="go">fmt.Println([]rune("absdef")[2])      // Also prints 115
fmt.Printf("%c", []rune("absdef")[2]) // Prints s</code>
Salin selepas log masuk

Selain itu, julat for untuk rentetan berulang pada rune dalam rentetan, jadi anda boleh menggunakannya juga. Berbanding dengan menukarnya kepada []rune, kaedah ini lebih cekap:

<code class="go">i := 0
for _, r := range "absdef" {
    if i == 2 {
        fmt.Println(r)
        break
    }
    i++
}</code>
Salin selepas log masuk

Perhatikan bahawa pembilang i mestilah pembilang yang berasingan dan tidak boleh menjadi pembolehubah lelaran gelung, kerana untuk pengembalian julat ialah kedudukan bait, bukan indeks rune (ia berbeza jika rentetan mengandungi aksara multibait dalam perwakilan UTF-8).

dibungkus ke dalam fungsi:

<code class="go">func charCodeAt(s string, n int) rune {
    i := 0
    for _, r := range s {
        if i == n {
            return r
        }
        i++
    }
    return 0
}</code>
Salin selepas log masuk

Akhir sekali, sila ambil perhatian bahawa rentetan dalam Go disimpan dalam []bait, iaitu urutan bait teks yang dikodkan UTF-8 (baca blog Lihat artikel "String, bait, rune dan aksara dalam Go" untuk mendapatkan maklumat lanjut). Jika rentetan dijamin menggunakan aksara dengan kod kurang daripada 127, anda boleh menggunakan bait secara langsung. iaitu mengindeks rentetan dalam Go mengindeks baitnya, cth. "s"[0] ialah nilai bait 115 aksara 's'.

<code class="go">fmt.Println("s"[0])      // Prints 115
fmt.Println("absdef"[2]) // Prints 115</code>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Nilai Unikod Aksara 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