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