Go语言字符串(string)
定义和说明
Go语言中,字符串(string类型)是 UTF-8 字符的序列(当字符为 ASCII 码表上的字符时则占用 1 个字节,其它字符根据需要占用 2-4 个字节)。
字符串是一个不可改变的字节序列,创建后不能再次修改,因为字符串本质上是用一个定长的字节数组实现的。
字符串的使用
var str1 string = "This is a string"
str2 := "这是一个字符串"
fmt.Println(str1)
fmt.Println(str2)
————
字符串的比较
字符串可以使用一般的比较运算符进行比较(==,!=,<,<=,>,>=)。
通过在内存中按字节比较来实现比较字符串。
比较的依据是字符串自然编码的顺序。
字符串的长度
使用len()函数,可以求字符串占用的字节长度。
注意是字节长度,如果一个字符串中的元素不全是ASCII表上的字符,那求出的结果和字符串元素的个数就不相同。
见下例:
tip1 = "shining star"
fmt.Println(len(tip1))
tip2 = "闪光的星球"
fmt.Println(len(tip2))
Go语言的字符串都是utf8格式保存的,采用Uncode编码,如果字符属于ASCII编码内,那么这个字符还是占用1字节,如果是中文,一般使用3个字节表示,因此这里用len求出的结果是15。
如果希望统计习惯上的字符个数,需要使用Go语言中UTF-8包提供的 RuneCountlnString()函数,统计Uncode字符数量。
tip1 := "shining star"
fmt.Println(utf8.RuneCountInString(tip1