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




