English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Go言語では、return文を使って一つの関数複数の値を返します。つまり、関数内で単一のreturn文で複数の値を返すことができます。返値の型は、パラメータリストに定義されたパラメータの型と似ています。
文法:
func function_name(parameter_list)(return_type_list){ // code... }
ここに、
function_name:これは関数の名前。
parameter-list:これは関数の引数の名前と型を含みます。
return_type_list:これは選択的で、関数が返す値の型を含みます。return_typeを使用する場合、関数内で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("結果は: %d", myvar1) fmt.Printf("\n結果は: %d", myvar2) fmt.Printf("\n結果は: %d", myvar3) }
出力:
結果は: 2 結果は: 8 結果は: 6
Go言語では、返値に名前を提供することが許可されています。これらの変数名を使用してコード内でこれらの変数を使用することもできます。これらの名前をreturn文で記述する必要はありません。なぜなら、Goコンパイラはこれらの変数が自動的に返値として割り当てられると理解するからです。このような返値提供方法は裸返値と呼ばれます。シンプルな返値は、プログラムの冗長を減少させます。
文法:
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は関数の引数です。
package main import "fmt" // myfuncは返します2のint型の値 //ここに返値名があります //はrectangle および 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