Lua hat eine sehr schöne Syntax für den Aufruf ohne Parenthese, die es mir in Verbindung mit Funktionsabschlüssen ermöglicht, folgendes zu schreiben
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
{
}
Wenn ich jedoch die Klammern um (tag) entferne, führt dies zu einem Kompilierfehler. Warum also erlaubt Lua Parameter ohne Klammern (d.h. "def") und nicht Parameter ohne Klammern für var (in diesem Fall table)?