関数を自分で作成する際、引数や返り値をどう設定すればよいのかわからなかったので、例題でどう書けばよいのか考えることにした。

Go言語で関数


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に代入しますよという意味になる。