簡體   English   中英

在 Lua 中定義函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM