目次
01. 関数
・再帰関数
関数のサンプル
function sayTest()
print("hello world")
end
sayTest() --hello world
1~3行目は、関数です。
4行目は、関数を実行します。
関数のサンプル(引数あり)
function calc(num1,num2)
print(num1 + num2)
end
calc(1,2) --3
任意の引数を指定できます。
関数のサンプル(戻り値あり)
function calc(num1,num2)
return(num1 + num2)
end
print(calc(2,3)) --5
戻り値を返せます。
関数のサンプル(複数の戻り値あり)
function calc(num1,num2)
local ans1 = num1 + num2
local ans2 = num1 - num2
return ans1,ans2
end
local a,b = calc(5,4)
print(a,b) --9 1
複数の戻り値も返せます。
無名関数
a = function(num1,num2)
return num1 + num2
end
print(a(5,4)) --9
関数名がない関数です。
関数の引数が可変長引数
function test1(...)
for _, value in ipairs({...}) do
print(value)
end
end
test1(1, 3, 5, 7) -- 1, 3, 5, 7
可変長引数は「...」を使用します。
関数の引数に関数を指定
function calc1(func1,num1)
return func1(num1)
end
func1 = function(num1)
return num1 * 2
end
print(calc1(func1,6)) --12
関数の引数に関数を指定できます。
関数の戻り値が関数
function calc1(num1)
return function(x) return x + num1 end
end
local ans = calc1(3)
print(ans(2)) --5
関数の戻り値に関数を指定できます。
再帰関数
function calc1(num1)
if num1 < 1 then
return
else
print(num1)
num1 = num1 - 1
return calc1(num1)
end
end
print(calc1(3)) --3 2 1
再帰関数は、自身の関数を呼び出します。
ループを抜ける条件を満たすことよって処理を終了します。
条件を間違えると無限ループになってしまうので注意が必要です。
関連の記事