「good morning」を表示するというaisatuという関数を作ってみる。

関数とは、func 関数名(){}で作成する一連の処理をまとめたものである。

package main

func main() {
	aisatu()
}

func aisatu() {
	print("good morning")
}

main関数の中で、自作したaisatuという関数を実行することになる。main関数はエントリーポイントと呼ぶ。関数の呼び出しには必ず()をつける。ここではaisatuの後の()。


次に2つの変数(num1、num2)を足して表示するという関数を作る。


package main

func main() {
	var num1 int
	var num2 int
	num1 = 5
	num2 = 7
	sum(num1, num2)
}

func sum(i int, j int) {
	var res int
	res = i + j
	print(res)

}



sumは2つの変数を足し算して、その結果を出力する関数としたいので、その2つの変数に当たるものをi、jとする。これを引数と呼ぶ。sumの中の()にi、jを書き、各引数の横に型指定をする(この場合はint)。


※i、jはnum1、num2でも良いが、main関数以外の関数の中にいれる文字は、なるべくシンプルな文字にした方が後々わかりやすい。

※変数resにintをつけて整数であることを指定しなければならない。


エントリーポイントの中で、sumの結果を表示したい場合は、

package main

func main() {

	var num1 int
	var num2 int
	num1 = 5
	num2 = 7
	var r int
	r = sum(num1, num2)
	print(r)
}

func sum(i int, j int) int {
	var res int
	res = i + j
	return res
}

 ※_を引いた箇所が変更した点

関数の返り値として、int型を追加して、printの代わりにreturnを入れ、エントリーポイントに結果を返した。

そうすると、関数で使った変数rをエントリポイント内で追加してあげなければならない。

※関数の中で定義した変数は、その中でしか使えない。エントリーポイントで作った関数は、エントリーポイントのみしか使えない。例え同じ文字を使っても、別物と認識される。


エントリーポイントで2つの値を返したいときは、

package main

func main() {

	var num1 int
	var num2 int
	num1 = 5
	num2 = 7
	var r int
	var b bool
	r, b = sum(num1, num2)
	print(r, b)
}

func sum(i int, j int) (int, bool) {
	var res int
	res = i + j
	return res, true
}

今回は、関数の帰り値として引数の合計とtrueを返すことにしたので、return res の後にtrueを追加。

true はbool(論理型)という型があるので、func sum(i int, j int) の後にboolを追加。

エントリーポイントにもtrueに値する変数bを入力し、sumとprintにもそれぞれbを追加入力した。