函式 (Functions)
有時候你需要在程式中重複執行一段程式碼。函式 (Function) 可以幫助你將這段程式碼模組化,減少重複的工作。
函式以 function 關鍵字為開頭,然後是函式的名字,接著在括號內定義該函式的參數。函式可以被宣告為區域或是全域,但就像之前所提的,盡可能地宣告為區域變數。
function addNumbers( number1, number2) --Global function
local result = number1 + number2
return result
end
local function subtractNumbers( number1, number2) --Local function
local result = number1 - number2
return result9
end
在 Lua 中,函式可以回傳不只一個值:
local function divideWholeNumbers( number1, number2 )
local result = math.floor( number1 / number2 )
local remainder = number1 % number2
return result, remainder
end
print( divideWholeNumbers( 10, 7 ) )
輸出:
1 3
Lua 也支援匿名函式,對於定義暫時性用途的函式非常有幫助,像是將函式當成參數傳遞,或是你 希望在定義前就使用它:
local appendString
local function mergeStrings( first, second )
return appendString( first, second, " " )
end
appendString = function( sourceString, additionalString, delimiter )
local delim = delimiter
if delim == nil then
delim = " "
end
return sourceString .. delim .. additionalString
end
-- or a temporary function:
timer.performWithDelay( 1000, function()
appendString( "hello", "world");)
end )