rune-Typ in Golang
In Golang entspricht rune int32, wird aber im Allgemeinen zur Zeichenkonvertierung verwendet. Die len()-Methode in Golang berechnet hauptsächlich die Länge des Arrays.
Der Standard-String-Speicher in Golang erfolgt im utf8-Format. Englische Buchstaben werden in einzelnen Bytes gespeichert, und die Ausführungsergebnisse von -1 und -2 sind 16 und 15. In Golang gibt es zwei Möglichkeiten: utf8.RuneCountInString und []rune(), um utf8 in 4-Byte-int32-Speicher umzuwandeln und dann die Länge des int32-Arrays zu berechnen.
-1 address := "this is shanghai" fmt.Println("len(address):",len(address)) -2 address := "this is shanghai" fmt.Println("len(address):",len(address)) -3 addressThree := "这是在上海" fmt.Println("len(address):",utf8.RuneCountInString(addressThree)) -4 fmt.Println("len(address):",len([]rune(addressThree))) -5 unicode.Is(unicode.Han, c) //可以判断字符是否是汉语
Ergebnisse
-1 len(address): 16 -2 len(address): 15 -3 len(address): 5 -4 len(address): 5