「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を追加入力した。