问题标签 [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.3 的报告,并且有一个我需要谈论变量名的话题。我已经查阅了文档,但我需要的信息不存在。
我想知道的是 Lua 5.3 中变量名可以有多少个字符?存在一些最大限制或大小对解释器无关紧要?
c++ - 如何使用库“lfs”构建 lua 5.3?
在我的项目中,我通过在 Lua 的 Makefile 中添加 lfs.c 和 lfs.h 来使用库“lfs”( https://github.com/keplerproject/luafilesystem )构建 Lua5.1,效果很好。
但是升级到 lua5.3 之后,就这样失败了:
测试.lua:
我检查了最新的“lfs”库是否支持 Lua5.3。
我的操作系统是 macos 10.12,这是我正在使用的 makefile
任何意见,将不胜感激
lua - 我传递给 lua 脚本的参数为零
我正在编写一个 Lua 5.3 程序,它需要将参数传递给它。我使用该arg
表来获取第一个参数:arg[1]
,但根据脚本,即使我已将参数传递给文件,第一个参数也是 nil。
这是我编写的代码:
我将参数传递给文件,如下所示:
它认为 arg[1] 不是 nil 值。在 Lua 5.3 中是否有不同的方式将参数传递给 lua 脚本?
utf-8 - utf8.offset:如何指定起始位置?
如何使用从特定字节和字符位置开始utf8.offset(s, n, i)
查找字符的偏移量?n
该i
参数记录为:
返回 s 的第 n 个字符(从位置 i 开始计数)的编码开始的位置(以字节为单位)...
我得到i
的是我需要的,但我不明白它是字节位置还是字符位置。我该如何使用它?
lua - 字符串引用
在我的代码中,我需要在本地跟踪某些值(字符串,总是......)。我想知道在官方 Lua 5.3 实现中将其放入本地后,运行时是否会重新创建或检查此字符串。有任何想法吗?在这个 lua.org文档中,我至少听说过 Lua 实现会进行字符串内部化(保留任何字符串的单个副本)。
我正在重新启动我的代码,所以到目前为止我做了一些微不足道的事情。我可以为每个函数做的一个例子是:
lua - 通过_ENV模拟c ++'使用命名空间'
如果我有一个文件foo.lua
:
在bar.lua
我大量使用代码时,foo.lua
我一直被打字所困扰,宁愿foo.add()
只写我可以添加这个:add()
bar.lua
但是当您从许多文件中包含许多值的别名时,这开始变得很痛苦。在 c++ 中有一种解决方法:
在 lua 中,我认为您可以像这样模拟此功能:
据我所知,它尊重范围,所以像下面的代码这样的东西很好玩:
实际上下面的代码不起作用。我正在通过 lua repl 运行代码。当我在 lua 文件中编写下面的代码片段时,它没有给出预期的结果。
我有什么理由后悔这样做吗?(除了同样适用的原因using namespace
)
lua - 获取对 Lua 中调用函数的引用
我知道我可以debug.getinfo(1, "n").name
用来获取调用函数的名称,但我想获取对该函数指针本身的引用。
对于debug.getlocal()
,f
参数是堆栈位置,因此我只需选择正确的索引即可轻松获取调用函数的局部变量。但是对于debug.getupvalue()
,f
参数是函数指针本身,我没有。
这是一个简短的示例,但其中有问题的行debug.getupvalue(someFunction, index)
是为了演示我想要完成的工作,而没有硬编码的参考。
c - Lua C 函数调用返回 nil
我为 Lua 写了一个简单的 C 插件:
使用此 GCC 命令成功编译代码:
在 Lua 5.3 REPL 中,我也能够成功找到并导入模块,但函数调用的返回值始终为nil
:
没有错误被抛出,因为我能够printf
在返回值之前在 C 代码中得到结果,我知道代码被调用并且结果计算成功。
有任何想法吗?
Edit1:通过不使用局部变量,我得到了这个堆栈跟踪而不是一个 nil 值:
lua - 为什么文档说在表格中查找了`__index`?
来自Lua 5.3 文档:
__index
:索引访问table[key]
。...元方法在table
.
它对 说同样的事情__newindex
,但对任何其他元方法都没有。
如果这是真的(事实并非如此),那将是与以前版本的 Lua 的重大背离。如我所料,以下代码输出nil
,但与文档不一致。
需要明确的是:如果文档是正确的,我希望t0
在上面的代码中只需要一个__index
没有实际元表的字段 for t0.a
to be 54
。那么有谁知道doc是怎么回事?
lua - Lua 代码 elseif 不工作
这就是接受用户的输入并使用该特定文本进行搜索。
玩string.gsub
。
错误:elseif
循环不起作用!