我正在调用一个函数,如果没有值,则返回一个空数组.
当我这样做时,它不起作用:
if r == [] {
fmt.Println("No return value")
}
Run Code Online (Sandbox Code Playgroud)
我正在使用的工作是:
var a [0]int
if r == a {
fmt.Println("No return value")
}
Run Code Online (Sandbox Code Playgroud)
但是声明一个变量只是为了检查返回值似乎并不正确.有什么更好的方法呢?
Sim*_*tti 74
len() 返回切片或数组中的元素数.
假设whatever()是您调用的函数,您可以执行以下操作:
r := whatever()
if len(r) > 0 {
// do what you want
}
Run Code Online (Sandbox Code Playgroud)
或者如果您不需要这些物品
if len(whatever()) > 0 {
// do what you want
}
Run Code Online (Sandbox Code Playgroud)
abh*_*ink 12
你可以使用这个len功能.
if len(r) == 0 {
fmt.Println("No return value")
}
Run Code Online (Sandbox Code Playgroud)
虽然由于您使用的是数组,但是类型[0]int数组(大小为0的int数组)与[n]int(n大小为n的int数组)不同,并且彼此不兼容.
如果你有一个返回不同长度数组的函数,可以考虑使用slice,因为函数只能用具有特定长度的数组返回类型声明(例如func f() [n]int,n是一个常量),并且该数组中将包含n个值(它们是'即使该函数从未向该数组写入任何内容,也将被置零.
您可以使用Golang提供的内置函数
长度()
它将帮助您轻松找到切片是否为空。
if len( yourFunction() ) == 0 {
// It implies that your array is empty.
}
Run Code Online (Sandbox Code Playgroud)