在 pandoc對過濾器的介紹中,以下代碼作為“Lua 過濾器示例”呈現:
return {
{
Strong = function (elem)
return pandoc.SmallCaps(elem.c)
end,
}
}
如上例所示,我從未在 Lua 中看到過獨立的 return 陳述句。此外,我在官方參考資料中的任何地方都看不到這種語法。
任何人都可以讓我知道以下內容:
- 這是否是有效的 Lua?
- 它在 Lua檔案中記錄在哪里?
uj5u.com熱心網友回復:
是的,這是有效的 Lua。Lua 檔案或字串被稱為“塊”,基本上是函式,因此可以return像任何其他函式一樣包含陳述句。他們的論點可以通過 vararg 訪問...。
這記錄在Lua 5.4 參考手冊部分的 Chunks 中:
Lua 將塊處理為具有可變數量引數的匿名函式的主體(參見 §3.4.11)。因此,塊可以定義區域變數、接收引數和回傳值。
從命令列啟動 Lua 檔案時,...將是命令列引數。手動loading 字串或loadfileing 檔案時,您會獲得作為函式回傳的塊,并且可以決定要傳遞的內容。
事實上,return從required 檔案中獲取某些內容而不是將庫函式寫入全域命名空間被認為是一種很好的做法。return在這種情況下相當于 JS export:
foo.lua:
return function()
print("foo")
end
bar.lua:
local foo = require("foo")
foo()
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/492278.html
上一篇:回傳給定陣列的一個版本的函式,其中陣列中的每個零值都被0右側的最小奇數值替換。在C中
下一篇:回傳2列中的2個值
