Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Mendapatkan Nilai Unikod Aksara dalam 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!