先看下面的代码
func main() { fmt.Println("Hello, 世界") cc:=[...]int{} b:="" a:=strings.Split(b,"'") fmt.Printf("%+v,%+v ",a,cc) fmt.Println(len(a),len(cc)) }
输出结果
Hello, 世界 [],[] 1 0
我们看到cc是一个空的数组,它的长度为0,这个应该不会有疑问,问题在Split函数。
字符串b是一个空的字符串,经过Split后返回的数组的长度为1了,这个有点其妙了。
仔细想想也不其妙,Split函数返回的数组里是包含一个元素的,只不过这个元素的值是长度为0的字符串,所以用len函数计算长度返回1就是很正常的事情了。