引数と戻り値

Go言語における「引数と戻り値」は、関数の定義と呼び出しの基本構成要素であり、関数がどのような値を受け取り、どのような値を返すのかを指定します。以下に詳しく説明します。


1. 関数の引数(Parameters)

Goの関数は、複数の引数を取ることができ、各引数には型を指定する必要があります。

基本構文

go
func 関数名(引数名 型, ...) 型 { // 関数本体 }

go
func add(a int, b int) int { return a + b }

上記の関数addは、2つのint型の引数abを受け取り、その合計を返します。

同じ型の引数の省略記法

複数の引数が同じ型である場合、型をまとめて記述できます。

go
func add(a, b int) int { return a + b }

2. 可変長引数(Variadic Parameters)

Goでは、最後の引数に限り、任意の数の引数を受け取る「可変長引数」を使うことができます。

go
func sum(numbers ...int) int { total := 0 for _, n := range numbers { total += n } return total }

このsum関数は任意の数の整数を受け取り、それらを合計します。


3. 戻り値(Return Values)

Goの関数は戻り値を持つことができます。戻り値の型は引数の後に記述します。

単一の戻り値

go
func greet(name string) string { return "Hello, " + name }

複数の戻り値

Goでは複数の値を同時に返すことが可能です。

go
func divide(a, b int) (int, int) { quotient := a / b remainder := a % b return quotient, remainder }

このdivide関数は商と余りの2つのint値を返します。


4. 名前付き戻り値(Named Return Values)

戻り値に名前を付けることもできます。これにより、関数内でその変数を直接操作でき、return文で値を省略可能です。

go
func calculate(a, b int) (sum, product int) { sum = a + b product = a * b return // sum, productが返される }

5. 戻り値のゼロ値(Zero Value)

戻り値を指定していてもreturn文を使って値を返さなかった場合、Goは型のゼロ値(初期値)を返します。例えば、int型なら0string型なら""(空文字)です。


まとめ

機能 説明
引数 複数指定可能。同型は省略記法あり。
可変長引数 最後の引数に...型を指定して任意個受け取れる。
単一戻り値 func f(...) 型 {} の形式で返す。
複数戻り値 func f(...) (型1, 型2) の形式で返す。
名前付き戻り値 戻り値に名前を付けて関数内で直接操作できる。
ゼロ値の戻り値 値を返さない場合、戻り値型のゼロ値が返される。

生成日:2025/05/03