我们为什么要使用lua_pushinteger()?

时间:2014-06-12 12:38:16

标签: lua

当前版本的Lua不支持整数,只支持浮点数。 (随着即将到来的5.3这种情况正在发生变化,但让我们忽略这一点。)

所以,我的问题是:lua_pushinteger()中有什么用处?如果数字被转换为浮点数,为什么不直接使用lua_pushnumber()

(请不要回答"以便将来与5.3&#34相容;这对今天来说是一个很好的答案,但这是一个否则不会回答的答案满足我的风格:过去没有预期整数支持。我想知道lua_pushinteger()首先被引入的原因,而不是后见之明的抱歉。)

1 个答案:

答案 0 :(得分:5)

为了文档,性能和正确性,引入了API中整数的显式处理。

在API内部明确地集中处理整数允许核心使用与浮点数的最佳转换;在某些平台上,如果做得天真,这可能会很昂贵。它还允许核心检查溢出,尽管Lua 5.1和5.2没有检查这个。