Dizelerin öğeleri, tür baytına sahiptir ve olağan dizin oluşturma işlemleri kullanılarak erişilebilir.Karakter dizisi olarak dize getirme
Karakter dizisini char olarak nasıl alabilirim? -
, "bir" [1]> "o"
Dizelerin öğeleri, tür baytına sahiptir ve olağan dizin oluşturma işlemleri kullanılarak erişilebilir.Karakter dizisi olarak dize getirme
Karakter dizisini char olarak nasıl alabilirim? -
, "bir" [1]> "o"
basit çözüm rün bir dizi dönüştürmek için:
var runes = []rune("someString")
Not
bir yineleme zaman bu string, dönüşüme ihtiyacınız yok. Effective Go bu örneğe bakın:for pos, char := range "日本語" {
fmt.Printf("character %c starts at byte position %d\n", char, pos)
}
Bu
character 日 starts at byte position 0
character 本 starts at byte position 3
character 語 starts at byte position 6
Git dizeleri genellikle basar, zorunlu olmamakla birlikte UTF-8 kodlu. Unicode dizeleri olması durumunda, "char [acter]" terimi oldukça karmaşıktır ve runes (kod noktaları) ve Unicode karakterlerinin hiçbir özel/benzersiz bijeksiyonu yoktur. Neyse
kolayca bir dönüşümü kullanılarak içine bir dilim ve kullanım endekslerinde kod noktaları (rünler) çalışabilirsiniz: Ayrıca burada
package main
import "fmt"
func main() {
utf8 := "Hello, 世界"
runes := []rune(utf8)
fmt.Printf("utf8:% 02x\nrunes: %#v\n", []byte(utf8), runes)
}
: http://play.golang.org/p/qWVSA-n93o
Not: Unicode erişmek için sık sık arzu Dizine göre "karakterler" bir tasarım hatasıdır. Metin verilerinin çoğu ardışık olarak işlenir.