先看下面的代碼
func main() { fmt.Println("Hello, 世界") cc:=[...]int{} b:="" a:=strings.Split(b,"'") fmt.Printf("%+v,%+v\n",a,cc) fmt.Println(len(a),len(cc)) }
輸出結果
Hello, 世界 [],[] 1 0
我們看到cc是一個空的數組,它的長度為0,這個應該不會有疑問,問題在Split函數。
字符串b是一個空的字符串,經過Split后返回的數組的長度為1了,這個有點其妙了。
仔細想想也不其妙,Split函數返回的數組里是包含一個元素的,只不過這個元素的值是長度為0的字符串,所以用len函數計算長度返回1就是很正常的事情了。