Go语言中的rune类型浅析
发布时间:2020-12-16 09:30:35 所属栏目:大数据 来源:网络整理
导读:rune是Go语言中一种特殊的数据类型,它是int32的别名,几乎在所有方面等同于int32,用于区分字符值和整数值 1 package main 2 3 import " fmt " 4 5 func main() { 6 7 var str = " hello 世界 " 8 fmt.Println( " len(str): " ,len(str)) 9 10 } 这段代码的执
rune是Go语言中一种特殊的数据类型,它是int32的别名,几乎在所有方面等同于int32,用于区分字符值和整数值 1 package main 2 3 import "fmt" 4 5 func main() { 6 7 var str = "hello 世界" 8 fmt.Println("len(str):",len(str)) 9 10 } 这段代码的执行结果为: len(str):12 从字符串字面值看len(str)的结果应该是8,但在Golang中string类型的底层是通过byte数组实现的,在unicode编码中,中文字符占两个字节,而在utf-8编码中,中文字符占三个字节而Golang的默认编码正是utf-8. 如果想要获得真实的字符串长度而不是其所占用字节数,有两种方法实现 方法一: 使用unicode/utf-8包中的RuneCountInString方法 str := "hello 世界" 方法二: 将字符串转换为rune类型的数组再计算长度 str := "hello 世界" (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |