Eka*_*Eka -1 function return-value go
我需要为 golang 中的函数返回一个空值,我的代码看起来像这样。
package main
import (
"fmt"
)
func main(){
for i:=0;i<6;i++{
x,e := test(i)
fmt.Println(i,x,e)
}
}
func test(i int)(r int,err error){
if i%2==0{
return i,nil
}else{
return
}
}
Run Code Online (Sandbox Code Playgroud)
和它的输出
Run Code Online (Sandbox Code Playgroud)0 0 <nil> 1 0 <nil> 2 2 <nil> 3 0 <nil> 4 4 <nil> 5 0 <nil>
而我想要这种类型的输出
Run Code Online (Sandbox Code Playgroud)0 0 <nil> 1 <nil> <nil> 2 2 <nil> 3 <nil> <nil> 4 4 <nil> 5 <nil> <nil>
如何在golang中返回空值?
“空值”是约定俗成的问题。您必须定义空值的含义。
strings.Index返回 -1,因为所有有效值都 >=0nilvalue, exists:=someMap[key]
Run Code Online (Sandbox Code Playgroud)
以上,如果exists为真,则value具有有效值。如果exists是false,value则无效(空)。
所以在你的代码中,你可以这样做:
func test(i int)(r int,valid bool){
if i%2==0{
return i,true
}else{
return 0,false
}
}
Run Code Online (Sandbox Code Playgroud)
或者,如果您遇到错误情况,请从您的函数返回一个非 nil 错误并检查您调用它的地方是否存在错误。如果有错误,无论返回值是“空”。