【发布时间】:2017-08-02 09:50:45
【问题描述】:
这是我在 Go 中的一段代码
ips := strings.Split(IP, ",")
if len(ips) < 1 {
return fmt.Errorf("'%v' ip is wrong", ips)
}
我对此进行了测试,似乎ips 变量永远不会为零。例如,一个空字符串会产生一个空字符串切片(长度为 1)。
你认为我可以删除 if 块吗?
【问题讨论】:
这是我在 Go 中的一段代码
ips := strings.Split(IP, ",")
if len(ips) < 1 {
return fmt.Errorf("'%v' ip is wrong", ips)
}
我对此进行了测试,似乎ips 变量永远不会为零。例如,一个空字符串会产生一个空字符串切片(长度为 1)。
你认为我可以删除 if 块吗?
【问题讨论】:
你是对的:strings.Spit() 永远不会返回 nil 值。结果将是[]string 类型,其中至少有一个元素包含给定的字符串。
是否可以删除 if 块取决于:如果len(ips) < 2,您的代码是否有问题?如果没有,您可以安全地删除 if 块。
但是,例如你只对ips[1]感兴趣,那么你一定要先检查一下。
【讨论】:
strings.Split("", ",") 长度为 1 play.golang.org/p/Kaddfg9CiF