为什么我们应该使用lua_pushinteger()?

目前 Lua 的版本不支持整数,只支持浮点数。(尽管即将推出的 5.3 版本会改变这一点,但我们先不考虑这个。)

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

(请不要回答“为了与 5.3 版本兼容”,这是一个关于“现在”的好答案,但是这个答案不能在历史上回答我的好奇心,因为早期并不期待支持整数。我想知道为什么首先引入 lua_pushinteger(),而不是事后的道歉。)

点赞
用户107090
用户107090

为了文档、性能和正确性,API 明确处理整数。

在 API 内部专注明确处理整数让核心能够使用最佳的转换方式,从浮点数转整数和从整数转浮点数;在某些平台上,如果天真地处理会很昂贵。另外,它还允许核心检查溢出,虽然 Lua 5.1 和 5.2 没有检查这一点。

2014-06-12 14:27:24