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