🏐
Go言語で複数の戻り値を返す
複数の戻り値を返す
公式を翻訳してます
Goには複数の戻り値をサポートする機能が組み込まれています。この機能は、関数から結果とエラーの両方の値を返すなど、慣用的なGoでよく使われます。
この関数のシグネチャの(int, int)は、この関数が2つのintを返すことを示している。
ここでは、複数回の代入を伴うコールからの2つの異なる戻り値を使用する。
返される値のサブセットのみが必要な場合は、空白の識別子 _ を使用します。
可変数の引数を受け取れるのもGo関数のいいところだ。
package main
import "fmt"
// vals関数は、2つのint型の値を返します。
func vals() (int, int) {
return 3, 7
}
func main() {
// 2つの異なる値を返す関数を呼び出します。
a, b := vals()
// 値を2つ受け取る変数を宣言します。
fmt.Println(a)// 3
fmt.Println(b)// 7
// 1つの値だけが必要な場合、ブランク識別子を使って無視できます。
// cが7になるのは、2つ目の戻り値だから。
// _, c :=と書いてあるのは、1つ目の戻り値は無視するという意味。
_, c := vals()
fmt.Println(c)// 7
}
実行結果
hashimotojunichi@hashimotojunichinoMacBook-Pro go-example % go run hello.go
3
7
7
まとめ
今回は、見慣れない記号の_, を使いました。これを使うと、1つ目の戻り値は無視するようです。ですので、2つ目の7が出力されました。
Discussion