Pakej Runes dalam Go: Mengubah Aksara Beraksen
Dalam Go, tugas biasa ialah mengubah aksara beraksen kepada persamaan bukan aksennya. Satu pendekatan melibatkan penggunaan pakej unicode seperti norma dan teks. Walau bagaimanapun, pakej ini boleh menjadi rumit untuk pemula.
Penyelesaian yang lebih mudah ialah menggunakan pakej rune, yang telah diperkenalkan dalam Go 1.5 (dikeluarkan pada Ogos 2015) dan Go 1.6 (dijadual untuk dikeluarkan pada Q1 2016). Pakej runes menyediakan cara yang lebih mudah untuk mengalih keluar tanda bukan jarak (Mn), yang biasanya bertanggungjawab untuk aksen.
Berikut ialah contoh cara menggunakan pakej rune untuk mengalih keluar aksen daripada rentetan:
<code class="go">import ( "fmt" "runes" "bytes" "code.google.com/p/go.text/transform" "code.google.com/p/go.text/unicode/norm" ) func main() { r := bytes.NewBufferString("Your Śtring") t := transform.Chain(norm.NFD, runes.Remove(runes.In(unicode.Mn)), norm.NFC) r = transform.NewReader(r, t) fmt.Println(r) // Output: // Your String }</code>
Kod ini menggunakan fungsi transform.Chain untuk menggunakan satu siri transformasi pada rentetan. Pertama, rentetan diuraikan ke dalam bentuk normalisasi Unikod (NFD) untuk memisahkan aksara asas daripada aksen. Kemudian, fungsi rune.Remove digunakan untuk menapis sebarang rune yang termasuk dalam kategori Mn (tanda tanpa jarak). Akhir sekali, rentetan digubah kembali kepada bentuk ternormalnya (NFC) untuk mengalih keluar sebarang tanda diakritik yang tinggal.
Hasilnya, rentetan beraksen "Your Śtring" ditukar menjadi "Your String" selepas penyingkiran bukan -tanda jarak.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Pakej Runes untuk Mengeluarkan Aksen Daripada Rentetan dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!