在Go語(yǔ)言中,允許您使用return語(yǔ)句從一個(gè)函數(shù)返回多個(gè)值。換句話說(shuō),在函數(shù)中,單個(gè)return語(yǔ)句可以返回多個(gè)值。返回值的類型類似于參數(shù)列表中定義的參數(shù)的類型。
語(yǔ)法:
func function_name(parameter_list)(return_type_list){ // code... }
這里,
function_name:它是函數(shù)的名稱。
parameter-list:它包含函數(shù)參數(shù)的名稱和類型。
return_type_list:這是可選的,它包含函數(shù)返回的值的類型。如果在函數(shù)中使用return_type,則必須在函數(shù)中使用return語(yǔ)句。
package main import "fmt" // myfunc返回3個(gè)int類型的值 func myfunc(p, q int) (int, int, int) { return p - q, p * q, p + q } func main() { //將返回值分配到,三個(gè)不同的變量 var myvar1, myvar2, myvar3 = myfunc(4, 2) // 顯示值 fmt.Printf("結(jié)果為: %d", myvar1) fmt.Printf("\n結(jié)果為: %d", myvar2) fmt.Printf("\n結(jié)果為: %d", myvar3) }
輸出:
結(jié)果為: 2 結(jié)果為: 8 結(jié)果為: 6
在Go語(yǔ)言中,允許為返回值提供名稱。你也可以在代碼中使用這些變量名。沒有必要用return語(yǔ)句來(lái)編寫這些名稱,因?yàn)镚o編譯器將自動(dòng)理解這些變量必須被分派回去。這種類型的回報(bào)被稱為裸回報(bào)。簡(jiǎn)單的返回減少了程序中的重復(fù)。
語(yǔ)法:
func function_name(para1, para2 int)(name1 int, name2 int){ // code... } 或 func function_name(para1, para2 int)(name1, name2 int){ // code... }
這里,name1和name2是返回值的名稱,而para1和para2是函數(shù)的參數(shù)。
package main import "fmt" // myfunc返回2個(gè)int類型的值 //這里是返回值名稱 //是rectangle and square func myfunc(p, q int) (rectangle int, square int) { rectangle = p * q square = p * p return } func main() { //將返回值分配到 //兩個(gè)不同的變量 var area1, area2 = myfunc(2, 4) fmt.Printf("矩形面積為: %d", area1) fmt.Printf("\n正方形面積為: %d", area2) }
輸出:
矩形面積為: 8 正方形面積為: 4