要确定变量是否为函数,我使用以下方法
function isFunction(variable)
return type(variable) == "function"
end
据我所知,这是一个字符串比较。正如我所理解的那样,字符串比较相对较慢,我担心这个函数可能是我的代码中的瓶颈。是否有一种成本较低的方法来确定变量是否为函数?
我希望有一个函数返回一个整数,表示变量的类型。或者我可以用另一种方式提出我的问题:type(var)
如何确定变量的类型?当然,每个变量都不能保存表示其类型的字符串,因此我猜测在调用"function"
时,lua中有一些后端内容可以查找字符串type(var)
。
答案 0 :(得分:8)
Lua中的字符串比较非常快,因为大多数字符串都是实例化的。
在内部,每个Lua值都包含一个标识其类型的标记。这是type
使用的标记。