🏐

Go言語で複数の戻り値を返す

2023/07/13に公開

複数の戻り値を返す

公式を翻訳してます
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が出力されました。

Jboy王国メディア

Discussion