Lua 函数名后没有括号
我希望开发一款使用Lua作为脚本语言的游戏 我有以下声明:Lua 函数名后没有括号,lua,Lua,我希望开发一款使用Lua作为脚本语言的游戏 我有以下声明: foe:add_component 'render_info':set_scale(0.5) 我理解:意味着调用父对象将作为第一个参数传递给被调用的方法。但是在本例中,render_info后面没有括号;这似乎是一个简单的字符串文字,并在其上调用了一个方法,这似乎毫无意义 我也理解元表和元方法的概念,这可能是一个例子。但是,我发现没有“空白”操作符可以覆盖。我想知道关于Lua的语法,我是否遗漏了一些重要的东西 上面的代码语句是什么意思
foe:add_component 'render_info':set_scale(0.5)
我理解:
意味着调用父对象将作为第一个参数传递给被调用的方法。但是在本例中,render_info
后面没有括号;这似乎是一个简单的字符串文字,并在其上调用了一个方法,这似乎毫无意义
我也理解元表和元方法的概念,这可能是一个例子。但是,我发现没有“空白”操作符可以覆盖。我想知道关于Lua的语法,我是否遗漏了一些重要的东西
上面的代码语句是什么意思?每个部分是什么,它在做什么?如果唯一的参数是字符串或表构造函数,则函数调用不需要括号。不过,手册中可能没有这么清楚地说明: 下面是一个您可以尝试的小示例代码:
foe = {}
function foe:add_component(str)
print(str)
return foe
end
function foe:set_scale(scale)
print(scale)
return foe
end
foe:add_component 'render_info':set_scale(0.5)
如果函数只有一个参数,并且该参数是文本字符串或表构造函数,则可以在函数调用时省略括号 引用lua参考手册: 形式为f{fields}的调用是f({fields})的语法糖;那个 是,参数列表是一个新表。形式的召唤 f'string'(或f“string”或f[[string]])是 f(“字符串”);也就是说,参数列表是单个文本字符串 这相当于你的电话:
foe:add_component('render_info'):set_scale(0.5)