Skip to content

関数

関数

プログラミングの世界では、数学と同じように、関数という概念が使われます。 関数は、入力と出力を持つもので、入力を受け取って何らかの処理を行い、出力を返すものです。 関数は、プログラムの中で同じ処理を何度も繰り返す場合に、その処理をまとめておくために使われます。 関数を使うことで、プログラムの見通しを良くすることができます。

関数を利用するには、関数を定義する必要があります。 Goの関数は、以下のように定義します。

func 関数名(引数 型) 戻り値の型 {
// 処理
return 戻り値
}

関数名は、関数を呼び出す際に使う名前です。 引数は、関数に渡す値です。引数がない場合は、()を使います。,で区切って複数の引数を指定することができます。 戻り値の型は、関数が返す値の型です。戻り値がない場合は、ここには何も書きません。

簡単な関数

まずは簡単に、xの2乗を計算する関数を作ってみましょう。

package main
import "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 main
import "fmt"
func add(x int, y int) int {
return x + y
}
func main() {
fmt.Println(add(3, 5)) // 8
}

このプログラムは、add関数を定義しています。 add関数は、int型のxyという2つの引数を受け取り、その和を返します。

複数の戻り値

Goでは、複数の戻り値を返すことができます。

package main
import "fmt"
func swap(x, y string) (string, string) {
return y, x
}
func main() {
a, b := swap("hello", "world")
fmt.Println(a, b) // world hello
}

演習

  1. (ex01-8.go) 以下の要件を満たすプログラムを作成してください。
  • xを引数として受け取り、xの3乗を返す関数cubeを定義してください。
  • cube関数に3を渡して、その結果を出力してください。
  1. (ex01-9.go) 以下の要件を満たすプログラムを作成してください。
  • x, yを引数として受け取り、xのy乗を返す関数powを定義してください。
  • pow関数に2, 3を渡して、その結果を出力してください。
  • pow関数に3, 2を渡して、その結果を出力してください。
  • pow関数に2, 10を渡して、その結果を出力してください。