【发布时间】:2016-11-03 18:51:03
【问题描述】:
如果没有值,我正在调用一个返回空数组的函数。
当我这样做时它不起作用:
if r == [] {
fmt.Println("No return value")
}
我正在使用的解决方法是:
var a [0]int
if r == a {
fmt.Println("No return value")
}
但是仅仅为了检查返回值而声明一个变量似乎是不对的。有什么更好的方法来做到这一点?
【问题讨论】:
-
Go 不是 javascript!阅读基础知识:golang.org/doc/effective_go.html
-
更多东西 - 首先 - 数组不是切片。数组是类型,具有固定数量的元素,因此问题仅对切片有意义。其次 - 如果您初始化这些切片,它将不起作用。第三 - 如果 len(a) == 0 呢?
-
您的解决方法是否编译?除非
r也是[0]int类型,否则我看不到它会如何,但在这种情况下,两个(空)数组总是比较相等。 -
@PaulHankin 是的,它确实有效。函数的返回类型是 int[]