【发布时间】:2012-12-20 09:58:26
【问题描述】:
我遇到的情况是一个函数的代码如下:
func halfMatch(text1, text2 string) []string {
...
if (condition) {
return nil // That's the final code path)
}
...
}
返回 []string(nil) 而不是 nil。起初,我认为在具有特定返回类型的函数中返回 nil 可能只会返回该类型的零值实例。但后来我尝试了一个简单的test,但事实并非如此。
有人知道为什么nil 会返回一个空字符串切片吗?
【问题讨论】:
-
您的测试用例按预期工作并返回 nil。您能否生成一个行为类似于您遇到问题的代码的测试用例?您的逻辑可能有错误并返回其他地方。
-
我会努力把它变成一个更好的测试用例,但是在我相信返回
nil的return之前,我有一个Println被打印出来,所以一定是这样return声明。
标签: go