名前付き戻り値
CoddyのGOジャーニー「基礎」セクションの一部 — レッスン 57/109。
Goでは、関数の宣言で戻り値に名前を付けることができます。これによりコードの可読性が向上し、単に return ステートメントを使用するだけで値を返すことができるようになります。
名前付き戻り値を持つ関数を作成します:
func divide(a, b int) (quotient int, remainder int) {
quotient = a / b
remainder = a % b
return // "naked" return (名前を省略した戻り値)
}
func main() {
q, r := divide(7, 3)
fmt.Println("7 ÷ 3 =", q, "with remainder", r)
}出力は以前と同じです:
7 ÷ 3 = 2 with remainder 1名前付き戻り値はゼロ値で初期化され、関数本体の中で直接代入することができます。
チャレンジ
初心者このチャレンジでは、Goの関数における名前付き戻り値の使用を練習します。
人の名前、年齢、そして学生かどうかを返す関数 getPersonInfo を完成させてください。この関数にはすでに名前付き戻り値のパラメータが定義されていますが、それらに値を代入する必要があります。
この関数は、名前が 'Alex'、年齢が 25 歳、そして学生であるという定義済みの値を返す必要があります。
チートシート
Goでは、可読性を高めるために関数宣言の中で戻り値に名前を付けることができ、単純な return ステートメントを使用できます:
func divide(a, b int) (quotient int, remainder int) {
quotient = a / b
remainder = a % b
return // "naked" return
}名前付き戻り値はゼロ値で初期化され、関数本体の中で直接代入することができます。
自分で試してみよう
package main
import "fmt"
// この関数は名前付き戻り値を使用します
func getPersonInfo() (name string, age int, isStudent bool) {
// TODO: 名前付き戻り値の変数に値を代入してください
// name は "Alex" にする必要があります
// age は 25 にする必要があります
// isStudent は true にする必要があります
// 引数なしの "return" ステートメントは、名前付き戻り値を返します
return
}
func main() {
name, age, isStudent := getPersonInfo()
fmt.Printf("Name: %s\nAge: %d\nStudent: %t\n", name, age, isStudent)
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。