go中len和Count的区别

最近使用go lang, 用着特别爽。但最近开发一个模块,一直不符合预期。后面通过看go源码,发现趟着大坑了。

len或者Count都能获取字符串、字节数组长度。如

data := “hello”

data_len := len(data)

data_len := strings.Count(data, “”) – 1

content := []byte(“hello”)

content_len := len(content)

content_len := bytes.Count(content, nil) – 1

但是len和Count还是有区别。以bytes为例,使用bytes.Count(data, nil) – 1获取字节数组data长度,长度值为utf8.RuneCount(data) + 1,返回的utf-8编码的长度;而len返回实际字节长度。字符串类似。

Leave a Reply

Your email address will not be published. Required fields are marked *