2
Lua中有加上功能的一個非常好的無括號調用語法倒閉讓我寫下面的Lua閉包在實施DSL
local tag = 1
function test(obj)
return
function(str)
return
function (tbl)
tbl.objtag = tag
tbl.objname = str
return tbl
end
end
end
test (tag) "def"
{
}
test tag "def" --error
{
}
但是,如果我身邊(標籤)刪除括號,它導致編譯錯誤。那麼爲什麼Lua允許無括號參數(即「def」)而不是無括號var(在這種情況下是表)參數?
謝謝你的解釋。我是如此接近完全成熟的DSL ... – jameszhao00 2009-09-13 16:30:35
是否有任何理由不能通過某種「預處理器」將輸入傳遞給DSL以將括號放在所有內容中? – 2009-09-13 16:47:02
是的,找到了金屬。它完成你所描述的內容。 – jameszhao00 2009-09-13 18:28:59