Luaの関数
関数の定義、戻り値、変数への関数代入、基本ライブラリ関数を学ぶ。
関数は再利用可能な処理をまとめる。print() や io.read() も標準ライブラリの関数である。
関数を定義する
function 関数名(引数)
処理
end
function sum(x, y)
return x + y
end
print(sum(10, 20))
引数は値として渡される。引数を再代入しても、呼び出し元の変数は再代入されない。
戻り値
Luaの関数は複数の値を返せる。
function values()
return 10, 20
end
hoge, piyo = values()
print(hoge, piyo)
余分な戻り値は破棄され、不足する値には nil が代入される。return 文がない関数は値を返さない。
値としての関数
関数は変数へ代入できる。
function sum(x, y) return x + y end
function mul(x, y) return x * y end
operation = sum
print(operation(10, 20))
operation = mul
print(operation(10, 20))
関数の中で関数を定義し、クロージャーとして返すこともできる。
function createCounter(value)
return function(amount)
value = value + amount
return value
end
end
counter = createCounter(10)
print(counter(5))
主なライブラリ関数
assert() は最初の引数が偽の場合にエラーを発生させる。
assert(value, "value must be true")
dofile() は別のLuaファイルを実行する。
dofile("call.lua")
type() は値の型を返す。tonumber() は変換可能な値を数値へ変換し、tostring() は値を文字列へ変換する。
print(type(10))
print(tonumber("25"))
print(tostring(25))