関数を自分で作成する際、引数や返り値をどう設定すればよいのかわからなかったので、例題でどう書けばよいのか考えることにした。
Go言語でf(x) = x 2という関数を作ってみる。そこにx=3を代入して結果を表示してみる。
package main import "fmt" func main() { x := 3 y := f(x) fmt.Println(y) } // f(x) = x + 2という式を意味する関数 func f(x int) int { y := x + 2 return y }
まず関数の書き方は、
func 関数名(引数と型) 返り値の型{ 式 return 値 }
と書くことは決まっているので、f(){}という形にすればよいというのはわかった。
次に、引数は関数内の式に代入する変数のことなので、今回はxという数字を代入するので、func f(x int) {}と書ける。
返り値がいるのかいらないのかで悩んだが、y := f(x)とmainで関数の実行結果をyに代入している。代入している場合は、関数の処理の結果を入れ戻しますよということなので、返り値が必要になる。この場合数字で返ってくるのでfunc f(x int) int {}と書ける。
次に関数内で実行する式、y:=x 2を書く。yはmainで出てきた変数だが、main以外の関数で使用する場合は、初めて出てきた変数とみなすので:が必要になる。
詳しくはGo言語でスコープ
最後にreturnが必要かどうかは、main関数内のy変数に値を代入しなければならないので、必要になってくる。
f関数内でreturn yと書くことでmain関数内のy:=f(x)のyに代入しますよという意味になる。