Go语言byte、rune、string小知识
-
byte: byte是uint8的一个别名代表了ASCII码的一个字符
-
rune:是int32的一个别名,代表一个UTF-8字符
-
string:是所有8位字节字符串的集合,通常但不一定代表UTF-8编码的文本
-
""和’’:Go中双引号标记的元素为string类型,其实质就是一个byte类型的数组,单引号是rune类型,下面例子中的32可以换位’ ’
GO语言在字符串的操作中byte只能操作简单的字符不支持中文操作,rune可以操作任何字符,比如汉字。
func replaceSpace(s string) string{ var result []rune for _,value := range s{ //这里从s中获取的value为rune类型 if value == 32{ //空格所对应的ASCII码为32直接与rune类型进行比较 //也可以更换为 if value == ' '{} result = append(result,'%','2','0') }else{ result = append(result,value) } } return string(result) }