问题标签 [lua-5.3]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
lua - 如何在 Lua 5.3 中保持整数浮动
在 Lua 5.2 中,所有数字都是双精度数。上述代码的输出是:
Lua 5.3 支持整数并在整数和浮点表示之间进行自动转换。相同的代码输出:
我想得到浮动结果。2.0^64
有效,但如果它不是文字怎么办:
一种可能的解决方案是将数字除以1
: (n/1)^64
因为在/
除法中,操作数始终转换为浮点数,但我正在寻找更优雅的解决方案。
在Lua 5.3.0 (work2)上测试。
c - lua_Integer 和 lua_createtable(表大小限制)
在 Lua 5.3 中,C API 中的表相关函数接收和返回lua_Integer
。
但是,lua_createtable
还是收到int
。
在下面的示例函数中,源表的长度用于创建相同大小的副本。
但是,需要强制转换才能使警告静音:
警告:从 'lua_Integer' 转换为 'int' 可能会改变其值 [-Wconversion]
在 Lua 邮件列表中搜索,我发现以下关于 Lua 5.2 的线程(我假设也适用于早期版本):
引用:Roberto Ierusalimschy(2012 年 8 月 7 日)
表的大小已经限制为 2147483647 个元素。Lua 内部使用 'int' 来索引它的所有数组(字符串/字节数组除外)。在任何地方都使用无符号值(例如 size_t)是一种痛苦;ptrdiff_t 根本没有任何保证。
long long
使用for的 Lua 5.3 仍然是这种情况lua_Integer
吗?在 Lua 5.3 中,上面示例中使用的转换为int
from是否安全?lua_Integer
c - 我们应该从 Lua 的 luaL_checkinteger() 等显式转换吗?
Lua 5.3 弃用了 luaL_checkint、luaL_checklong、luaL_optint、luaL_optlong,它们只是方便的宏调用luaL_{check|opt}integer
。
虽然我们仍然可以使用它们(因为),但用户手册-DLUA_COMPAT_5_2
中没有提到它们,我们建议使用“使用类型转换”。luaL_{check|opt}integer
现在,我不是 C 方面的专家,我想知道:
在以下简单情况下是否需要演员表?
/li>如果这里不需要演员表,在哪里需要?
如果我们可以没有它们,为什么首先会诞生那些已弃用的宏?换句话说:他们提供了什么服务?
我们不是因为没有在函数名中嵌入“int”/“long”字样而丢失了“文档”吗?
string - Lua 5.3 字符串库中所有函数的名称是什么?
这是我用来注册库名称的函数名称注册闭包:
池对象:
创建一个池对象
注册已知的库函数
lua - 如何在 Lua 5.3 中打印 lld
在其第一个参数(必须是字符串)中给出的描述之后,返回其可变数量参数的格式化版本。格式字符串遵循与 ISO C 函数 sprintf 相同的规则。唯一的区别是*, h, L, l, n, and p
不支持选项/修饰符,并且有一个额外的选项q
.
Lua 5.3 不支持lld
,如何lld
在 Lua 5.3 中打印?
lua - lua 元表错误或功能?
如果我有这个构造:
并且 a 都有一个附加的元表,b 有一个附加的元表。然后会调用 b 的 metatable setter 将 key 设置为 b。这是 lua 5.3.0 的错误吗?
编辑: a 和 b 是字符串。
c - luaL_setmetatable() 覆盖其他值的元表
我的项目中有不同的元表。但是,如果我创建一个值 A 并分配元表“X”并创建第二个值 B 并附加元表“Y”,那么 A 也会获得 Y 元表!这是一个用于演示的简化 C 函数:
卢阿代码:
输出是“OtherType”,但应该是“Obj”。似乎第二次调用 lua_setmetatable() 会覆盖其他值的表?!
c - Lua UTString 如何确保字符串的最大对齐?
我正在阅读 lua (5.3.0) 的源代码,lobject.h
我发现它使用一种奇怪的方法来操作字符串,如下所示:
关于在那里使用这种方法的原因,我找到了一个很好的答案。但我想知道ensures maximum alignment for strings
,这是什么意思?为什么我们需要maximum alignment
以及如何确保?
lua - Lua 测试套件:协程测试在 vxWorks 6.9 下失败
我正在尝试在 vxWorks 6.9 下集成 Lua 5.3。我目前在运行测试套件以检查 Lua 与我的系统集成时遇到问题。我正在运行 lua.org 网站 ( http://www.lua.org/tests/ ) 上提出的测试。我已经尝试过很多次来了解究竟是什么失败了,但这并不容易:系统在执行“coroutine.lua”文件时自行重启或崩溃返回页面错误。有没有其他人尝试过这种类型的集成?
我用这些定义编辑了 luaconf.h,也许知道它可能会有所帮助:
非常感谢您的帮助 :)
编辑:有一些罕见的情况下测试通过了......然后系统通常在执行“goto.lua”时以相同的行为崩溃
编辑:即使在定义LUA_COMPAT_5_1
and时它也会再次失败LUA_COMPAT_5_2
。行为总是相同的:在执行“coroutine.lua”测试或“goto.lua”测试期间出现页面错误
for-loop - 工厂函数无法将本地迭代器返回到lua中的for循环?
为什么工厂函数不能fromto
将本地函数iter
作为迭代器返回到 for 循环?