在Go語言中,允許您使用return語句從一個函數(shù)返回多個值。換句話說,在函數(shù)中,單個return語句可以返回多個值。返回值的類型類似于參數(shù)列表中定義的參數(shù)的類型。
語法:
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語句。
package main
import "fmt"
// myfunc返回3個int類型的值
func myfunc(p, q int) (int, int, int) {
return p - q, p * q, p + q
}
func main() {
//將返回值分配到,三個不同的變量
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語言中,允許為返回值提供名稱。你也可以在代碼中使用這些變量名。沒有必要用return語句來編寫這些名稱,因?yàn)镚o編譯器將自動理解這些變量必須被分派回去。這種類型的回報(bào)被稱為裸回報(bào)。簡單的返回減少了程序中的重復(fù)。
語法:
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個int類型的值
//這里是返回值名稱
//是rectangle and square
func myfunc(p, q int) (rectangle int, square int) {
rectangle = p * q
square = p * p
return
}
func main() {
//將返回值分配到
//兩個不同的變量
var area1, area2 = myfunc(2, 4)
fmt.Printf("矩形面積為: %d", area1)
fmt.Printf("\n正方形面積為: %d", area2)
}輸出:
矩形面積為: 8 正方形面積為: 4