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

Bagaimana untuk Mendapatkan Nilai Unikod Aksara dalam Go?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-04 07:36:01605semak imbas

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>

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>

Output:

115

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>

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>

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>

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>

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!

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