我需要為 golang 中的函數(shù)返回一個空值,我的代碼看起來像這樣。package mainimport ( "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 }}及其輸出0 0 <nil>1 0 <nil>2 2 <nil>3 0 <nil>4 4 <nil>5 0 <nil>而我想要這種類型的輸出0 0 <nil>1 <nil> <nil>2 2 <nil>3 <nil> <nil>4 4 <nil>5 <nil> <nil>如何在golang中返回空值?
1 回答

慕蓋茨4494581
TA貢獻(xiàn)1850條經(jīng)驗 獲得超11個贊
“空值”是一個約定俗成的問題。您必須定義空值的含義。
許多標(biāo)準(zhǔn)庫函數(shù)返回一個無效值來表示空。例如,
strings.Index
返回 -1,因為所有有效值都 >=0返回指針的函數(shù)通常返回
nil
有些函數(shù)返回成對的值,一個值和一個表示有效性。地圖和頻道也使用此約定:
value, exists:=someMap[key]
以上,如果exists
為真,則value
具有有效值。如果exists
是false
,value
則無效(空)。
許多函數(shù)返回一個值和錯誤。如果 error 不為零,則該值無意義。
因此,在您的代碼中,您可以執(zhí)行以下操作:
func test(i int)(r int,valid bool){
if i%2==0{
return i,true
}else{
return 0,false
}
}
或者,如果您有錯誤情況,請從您的函數(shù)中返回一個非零錯誤,并檢查您調(diào)用它的位置是否有錯誤。如果出現(xiàn)錯誤,則返回的值都是“空”。
- 1 回答
- 0 關(guān)注
- 452 瀏覽
添加回答
舉報
0/150
提交
取消