var s string
var slice []int
len(s)
len(slice)
Run Code Online (Sandbox Code Playgroud)
是len()对strings 和切片的调用,O(1)。
从这个golang 官方博客,我可以看到切片有长度、容量和指向底层数组的指针。所以我明白了,它上面的 len() 可能是一个 O(1) 操作。但是字符串呢?字符串的长度是否也在内部与数据相关联,以便 len() 只是查找并返回它?
我查看了builtin.go的源代码,但什么也做不了。
go ×1