2017-08-02 110 views
-1

这里是围棋strings.Split永远不会返回零或零长度片?

ips := strings.Split(IP, ",") 
if len(ips) < 1 { 
    return fmt.Errorf("'%v' ip is wrong", ips) 
} 

一块我的代码我试用了一下,似乎ips变量永远是零。例如,空字符串会产生一段空字符串(长度为1)。

您认为我可以删除if块吗?

回答

3

你是对的:strings.Spit()永远不会返回零值。结果将是类型为[]string,至少包含一个包含给定字符串的元素。

是否可以删除if块取决于:如果len(ips) < 2?您的代码是否有问题?如果没有,您可以安全地移除if块。

然而,如果例如你只对ips[1]感兴趣,那么你肯定需要先检查。

+0

我应该完成我的问题“零或零长度切片”如果我运行'strings.Split(“”,“,”)'长度为1 https://play.golang.org/p/Kaddfg9CiF – Vitalii

+1

输出切片总是至少有一个元素。它是有道理的,即使你尝试分割空字符串,函数将返回一个元素的切片 - 空字符串。 – bayrinat

+0

谢谢。将纠正我的答案 – TehSphinX