Lua的当前版本不支持整数,只支持浮点数. (随着即将到来的5.3这种情况正在改变,但让我们忽略这一点.) 所以,我的问题是:lua_pushinteger()有什么用?如果数字被转换为浮点数,为什么不直接
所以,我的问题是:lua_pushinteger()有什么用?如果数字被转换为浮点数,为什么不直接使用lua_pushnumber()?
(请不要回答“为了将来与5.3的兼容性”,这对今天来说是一个很好的答案,但是这个答案不能满足我的风格:过去不期望整数支持.我想知道理由lua_pushinteger()首先被引入,事后看来并不道歉.)
为了文档,性能和正确性,引入了API中整数的显式处理.在API内部明确地集中处理整数允许核心使用与浮点数的最佳转换;在某些平台上,如果做得天真,这可能会很昂贵.它还允许核心检查溢出,但Lua 5.1和5.2没有检查这一点.