快速确定变量是否为函数?

要确定变量是否为函数,我使用以下方法

function isFunction(variable)
    return type(variable) == "function"
end

据我所知,这是一个字符串比较。正如我所理解的那样,字符串比较的速度相对较慢,我担心这个函数可能成为我的代码瓶颈。有没有一种成本较低的方法来确定变量是否为函数?

我希望有一个返回表示变量类型的整数的函数。或者我可以换个方式问问题:type(var)如何确定变量的类型?毕竟,每个变量都不能持有表示其类型的字符串,所以我猜想在调用type(var)时,lua中有一些后端东西查找字符串"function"

点赞
用户107090
用户107090

Lua中的字符串比较非常快,因为大多数字符串都被内部化。

在内部,每个Lua值都包含一个标签,用于识别其类型。这就是type使用的标签。

2017-01-19 14:46:54