go语言中len函数得到的长度的单位解析
在 Go 语言中,len 函数返回的是数据结构的元素个数,具体的单位取决于调用 len 的对象类型:
-
对于字符串:
len(s)返回字符串s的 字节数。注意,Go 中的字符串是以 UTF-8 编码存储的,因此len返回的结果是字符串所占的字节数,而不是字符数。例如,一个包含多字节字符(如中文字符)的字符串,len返回的字节数会大于字符数。s := "hello" // 字符串中每个字符占1个字节 fmt.Println(len(s)) // 输出: 5 s2 := "你好" // 字符串中每个中文字符占3个字节(UTF-8编码) fmt.Println(len(s2)) // 输出: 6 (每个字符3个字节,共2个字符) -
对于数组:
len(a)返回数组a中元素的个数(即数组的长度),单位是“元素个数”。a := [3]int{1, 2, 3} fmt.Println(len(a)) // 输出: 3 -
对于切片:
len(slice)返回切片slice中的元素个数,单位也是“元素个数”。b := []int{1, 2, 3, 4} fmt.Println(len(b)) // 输出: 4 -
对于映射(map):
len(m)返回映射m中键值对的数量,单位是“键值对的个数”。m := map[string]int{"a": 1, "b": 2} fmt.Println(len(m)) // 输出: 2
总结:len 的返回值单位通常是数据结构中的元素个数,字符串则是字节数。如果是字符数,可以使用 utf8.RuneCountInString 来获取字符的数量。

浙公网安备 33010602011771号