複数の戻り値を返す
CoddyのGOジャーニー「基礎」セクションの一部。レッスン 56/109。
Goの関数は一度に複数の値を返すことができ、結果とエラー情報の両方を返すのに非常に便利です。
商と余りの両方を返す関数を作成します。
func divide(a, b int) (int, int) {
quotient := a / b
remainder := a % b
return quotient, remainder
}
func main() {
q, r := divide(7, 3)
fmt.Println("7 ÷ 3 =", q, "with remainder", r)
}このプログラムを実行すると、次のように出力されます:
7 ÷ 3 = 2 with remainder 1function はカンマで区切られた2つの values を返し、代入で複数の変数を使用して両方の values を取得します。
返された値の一部だけが必要な場合は、空白識別子 _ を使用して、必要のない値を無視できます:
q, _ := divide(7, 3) // 余りを無視する
fmt.Println("Quotient:", q)_を使うと、そのreturn値を破棄するようGoに指示できます。値を使用しない場合、Goでは未使用の変数が許可されないため、これは必須です。
チャレンジ
初心者このチャレンジでは、Go の function から複数の値を返す練習をします。
getPersonInfo という function があり、人物の名前、age、そしてその人物が学生かどうかを返す should になっています。あなたの課題は、適切な return 文を追加してこの function を完成させることです。
自分で試してみよう
package main
import "fmt"
// この関数は3つの値を返す必要があります: name、age、および isStudent
func getPersonInfo() (string, int, bool) {
// 変数はすでに定義されています
name := "Alex"
age := 25
isStudent := true
// TODO: 3つの値すべてを返す (name, age, isStudent)
}
func main() {
// 関数を呼び出して、返された値を格納する
name, age, isStudent := getPersonInfo()
// 値を出力する
fmt.Printf("Name: %s\n", name)
fmt.Printf("Age: %d\n", age)
fmt.Printf("Is Student: %t\n", isStudent)
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Goオンラインコンパイラ