Mengakses Aksara dalam Go String
Soalan ini meneroka cara mengakses aksara dalam rentetan Go, menyelidiki sifat rentetan sebagai kepingan bait dan hubungan antara aksara, rune dan kod Unicode mata.
Soalan Asal:
Bagaimanakah saya boleh mendapatkan aksara "E" dan bukannya nilai berangka 69 apabila mengakses "HELLO"[1]?
Jawapan:
Untuk mendapatkan semula aksara daripada rentetan, satu mesti faham representasi watak Go. Literal rentetan yang ditafsirkan ialah jujukan aksara yang dikodkan dalam UTF-8, dengan aksara ASCII hanya menduduki satu bait. Oleh itu, untuk mendapatkan aksara "E", penukaran berikut diperlukan:
fmt.Println(string("Hello"[1])) // ASCII only
Alternatif: Menggunakan Runes
Untuk sokongan Unicode, rune, yang mewakili Unicode mata kod, boleh digunakan. Ini serasi dengan rentetan UTF-8:
fmt.Println(string([]rune("Hello, 世界")[1])) // UTF-8
Kod ini akan mengeluarkan aksara "e".
Keupayaan Pengendalian Watak Go
Perlu diingat bahawa Go menyediakan fungsi untuk menukar antara aksara dan bait. Sebagai contoh, kaedah bait(c) menukar aksara (rune) kepada bait yang sepadan, manakala rune(b) menukarkan bait kepada aksara.
Bacaan Tambahan:
Atas ialah kandungan terperinci Bagaimana untuk Mengakses Watak Individu dalam Rentetan Pergi Daripada Nilai Berangkanya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!