在Lua中不使用括号传递表格会出现错误。

以下代码给我报错“'Person'附近的语法错误”,即使官方文档(http://www.luafaq.org/)中解释道:“因此,它巧妙地利用了Lua会接受单个函数参数而不需要括号的事实,如果参数是字符串或表格。”

function class(cls)
   return cls
end

Person = {}

class Person

print(Person)

我在这里漏了什么?如果我把class Person改成class“Person”,就可以正常运行,但是官方文档说它应该适用于字符串和表格。

点赞
用户1009479
用户1009479

在只有一个参数且该参数是字符串常量或表构造时,括号才可以省略。

在你的例子中,在语法上,你可以调用 class 'foo'class {},但不能调用 class Person,因为 Person 是一个变量,不是表构造。

2015-01-22 13:56:43