[英]Defining functions in Lua
我讀到我們可以用兩種不同的語法在 Lua 中聲明一個函數:
function pr()
print("I'm function pr()")
end
printt = function()
print("I'm function printt()")
end
pr()
printt()
盡管這些函數在被調用時的工作方式似乎完全相同,但我想知道它們在較低級別的實現之間是否存在差異。 解釋器是否完全相同地對待它們,或者它們在速度、實現或任何方面是否有所不同?
兩者之間沒有真正的區別。 第一個只是第二種形式的語法糖。
從參考手冊功能定義:
函數定義的語法是
functiondef ::= function funcbody funcbody ::= '(' [parlist] ')' block end
以下語法糖簡化了函數定義:
stat ::= function funcname funcbody stat ::= local function Name funcbody funcname ::= Name {'.' Name} [':' Name]
該聲明
function f () body end
翻譯成
f = function () body end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.