関数
関数
プログラミングの世界では、数学と同じように、関数という概念が使われます。 関数は、入力と出力を持つもので、入力を受け取って何らかの処理を行い、出力を返すものです。 関数は、プログラムの中で同じ処理を何度も繰り返す場合に、その処理をまとめておくために使われます。 関数を使うことで、プログラムの見通しを良くすることができます。
関数を利用するには、関数を定義する必要があります。 Goの関数は、以下のように定義します。
func 関数名(引数 型) 戻り値の型 { // 処理 return 戻り値}関数名は、関数を呼び出す際に使う名前です。
引数は、関数に渡す値です。引数がない場合は、()を使います。,で区切って複数の引数を指定することができます。
戻り値の型は、関数が返す値の型です。戻り値がない場合は、ここには何も書きません。
簡単な関数
まずは簡単に、xの2乗を計算する関数を作ってみましょう。
package mainimport "fmt"func f(x int) int { return x * x}func main() { fmt.Println(f(3)) // 9}このプログラムは、関数名fという関数を定義しています。
f関数は、int型のxという引数を受け取り、int型x * xを返します。
数学でいうと、f(x) = x * xという関数です。
main関数では、square関数に3を渡して、その結果を出力しています。
複数の引数
複数の引数を受け取る関数を定義することもできます。
package mainimport "fmt"func add(x int, y int) int { return x + y}func main() { fmt.Println(add(3, 5)) // 8}このプログラムは、add関数を定義しています。
add関数は、int型のxとyという2つの引数を受け取り、その和を返します。
複数の戻り値
Goでは、複数の戻り値を返すことができます。
package mainimport "fmt"func swap(x, y string) (string, string) { return y, x}func main() { a, b := swap("hello", "world") fmt.Println(a, b) // world hello}演習
- (ex01-8.go) 以下の要件を満たすプログラムを作成してください。
- xを引数として受け取り、xの3乗を返す関数
cubeを定義してください。 cube関数に3を渡して、その結果を出力してください。
- (ex01-9.go) 以下の要件を満たすプログラムを作成してください。
- x, yを引数として受け取り、xのy乗を返す関数
powを定義してください。 pow関数に2, 3を渡して、その結果を出力してください。pow関数に3, 2を渡して、その結果を出力してください。pow関数に2, 10を渡して、その結果を出力してください。