2016-03-08 268 views
4

我刚刚开始学习golang,遇到了一些很奇怪的事情。当你从一个调用strings.Split获得一个空数组时,它的长度为1。为什么从strings.Split中返回的空数组的长度为1?

package main 

import (
    "fmt" 
    "strings" 
) 

func main() { 
    test := strings.Split("", ",") 

    fmt.Println(test) 
    fmt.Println(len(test)) 
} 

此输出:

[] 
1 

这是为什么?如果这是预期的行为,那么检查数组是否为空的正确方法是什么?

由于

+5

因为数组不是空的。它的第一个元素是一个空字符串'“”'。 –

+0

非常感谢。 – wybourn

+0

此外,“,”是用逗号分隔的两个空字符串,因此它们最终长度为2. –

回答

2

如由@u_mulder评论说,因为它包含空字符串数组不为空。

相关问题