functionは。直訳すると"関数"となるが、例えば、一定の入力に対する出力は一定ではないなど、数学でいうところの関数とは若干異なる。
ここでは1.よく使う一定の処理をまとめたもの 2.Luaだけでは実現不能な機能を使うためのものの二種類を説明する。2についての説明は次項に譲るとして、まずは1についての説明である。
もともとは
function OnFrame() out(1, "さばとたんの腋でおにぎり作りたい><") out(10, "さばとたんの腋でおにぎり作りたい><") out(20, "さばとたんの腋でおにぎり作りたい><") end
という処理だったものを、共通する部分である"out(行数, "さばとたんの腋でおにぎり作りたい><")"をまとめて関数にして書きなおすと、以下のようになる。
function out_sabato(line) out(line, "さばとたんの腋でおにぎり作りたい><") end function OnFrame() out_sabato(1) out_sabato(10) out_sabato(20) end
この例のように、"function 関数名(引数名)〜end"の形で一定の処理を関数として定義してまとめることができる。引数については後述するので今は省略する。そして、こうして定義した関数は、
out_sabato(1)
のように、
関数名(引数)
の形でほかの部分から呼び出して利用することができる。
さて、このようにして処理を関数にまとめるとどのような利点があるかというと、まず第一にはプログラムの意味が取りやすくなることがあげられる。
つまり、上の例では3つの表示の内容が同じなのが偶然なのか意味があるのかがはっきりしないが、下の例のように関数にまとめることによって"さばとたんへの思いを述べる"という一定の処理であることがはっきりするのである。
さらにこのことは同時に変更を容易にもする。つまり、表示される文を
さばとたんのひざの裏でおにぎりつくりたいよ><
にしようとおもったときに、上の例であると3か所を間違いなく修正しないと正しく変更できないが、下のように関数にまとめてあれば一か所を変更するだけで3つの表示がすべて修正可能なのである。
引数とは、(以下未執筆)