type de rune en golang
En golang, la rune est équivalente à int32, mais est généralement utilisée pour la conversion de caractères. La méthode len() de Golang calcule principalement la longueur du tableau.
Le stockage de chaîne par défaut dans Golang est au format utf8. utf8 utilise un stockage d'octets de longueur variable. Les lettres anglaises sont stockées dans un seul octet et le chinois est stocké dans 3 octets. Par conséquent, les résultats d'exécution de -1 et -2 sont 16. et 15 . Il existe deux manières dans Golang : utf8.RuneCountInString et []rune() pour convertir utf8 en stockage int32 de 4 octets, puis calculer la longueur du tableau int32.
-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) //可以判断字符是否是汉语
Résultats
-1 len(address): 16 -2 len(address): 15 -3 len(address): 5 -4 len(address): 5