问题标签 [lua-5.1]
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.
module - 用函数编写一个合适的 Lua 5.1 模块
我正在使用一个嵌入了标准 Lua 5.1 的程序,并且正在尝试编写一个可以从中调用函数但无济于事的模块。
当前环境非常挑剔,如果我犯了错误,脚本会中断但不会出现任何错误,所以我们开始吧:
我有这样的东西(在moduletests.lua中):
然后我会尝试要求这个并调用它:
通常,如果 require 函数不正确,脚本会中断。这些脚本可以很好地满足要求,所以我认为它是正确的,但是在任何尝试调用 print 函数时它都会中断。
另一方面,我安装了另一个 lua 模块,并且能够成功地要求它并调用一个函数,这就是我为我的模块建模的内容。这是模块的代码。
这是我使用它的方式:
这工作得很好,完全符合预期。有人可以告诉我我的模块有什么不同或错误,或者对我如何制作更好的功能版本有任何建议吗?
谢谢大家,我衷心感谢您的帮助!非常感激!
lua - 元表没有索引,即使使用了 setmetatable
根据 Lua 手册,setmetatable 的工作方式仍然与 Lua 5.0 相同。然而由于某种原因,当我在 Lua 5.1.5 和 5.3.1 中尝试此代码时,似乎未访问元表:
第一种情况有效,但是在第二种情况下,我收到错误提示未使用元表:
这也与方法调用运算符“:”无关,因为即使获取方法的值也不会转到元表。
lua - 如何在lua中初始化表大小
将数字转换为表格的最有效方法是什么?或者是否可以制作没有循环的表格?
更新:t
变量是可变数字,我想为每个值。
我需要一种new Array(n)
在 Lua 中最快的方式。还是没有任何意义?
lua - 处理 lua 文件路径中的特殊字符(变音符号)
我有一个小 lua 函数来检查文件是否存在
false
但是,当文件路径包含特殊字符(例如德语变音符号 (äöü))时,这将始终返回。有没有办法解决?
非常感谢!
lua-5.1 - How to create table in table in Lua 5.1 using C-API?
I need to create construction like this in Lua 5.1 C-API, not in Lua 5.2 and above
Expected Result: GOOD
Thanks for answers!
lua - Lua沙箱加载许多脚本
我想制作一个可以定期加载脚本的包装器,但是在加载另一个之前删除以前的脚本数据,加载的脚本应该可以访问所有全局函数,除了一些函数,比如“打印”,它还应该修改一些函数行为。目前我有这个代码:
当我想加载一个新脚本时,我调用这两个函数,这段代码有什么问题,因为它没有按预期工作。
visual-c++ - Lua5.1 LuaSockets Win 64bit C++的“找不到指定的过程”
我正在尝试使 ZBS 在 Windows 中工作,将 Lua 5.1 和 luasockets 编译为 64 位 C++ 源。我收到以下错误:
从文件“socket\core.dll”加载模块“socket.core”时出错:找不到指定的过程。
对此有任何想法或暗示吗?
提前致谢,
json - 解析大于内存的 JSON 字符串
我正在使用的平台具有非常严格的内存限制,我正在尝试找到一种方法来解析大型 JSON 字符串,而无需将最多几百个字节加载到内存中。JSON 字符串存储在更大芯片(闪存)上的文件中。
有两件事我真的找不到一个好的解决方案:
- 通过指定“路径”来访问某个值,例如
foo["bar"][2]
.
(如果结果是一个数组/对象,那么我们应该只返回它是一个数组/对象的事实,也可能它是否为空。) - 遍历 JSON 中的任何对象/数组。
所以基本上我需要在调用时逐步解析 json 并且只保存我们实际需要继续解析的部分的函数。
对于界面,我认为不可能有类似的东西exampleJson["aa"].2.["gg]
,但我设法非常接近:exampleJson["aa"].2.["gg"]()
. 这将导致调用一个函数,然后该函数可以轻松访问 {'aa',2,'gg'} 并从文件中读取/解析 json。
到目前为止,这是我的代码,但我真的不知道如何继续:
https ://repl.it/HfwS/2
lua - 我可以使用 Lua 的 require 来设置调用文件的环境吗?
有没有办法调用require
Lua 文件,并让模块设置调用它的文件的环境?例如,如果我有一个定义函数Root
并Sequence
在表中定义的 DSL(域特定语言),我是否可以setfenv(1, dslEnv)
在模块中有类似的东西允许我像全局变量一样访问这些函数?
我想到的目标是使用行为树 DSL,使我的定义文件看起来像这样(或尽可能接近):
不必明确地将Root
,Sequence
和 和Leaf
明确地纳入范围,也不必对 . 之类的名称进行限定behaviortrees.Sequence
。
简而言之,我试图使定义文件尽可能干净,没有任何多余的行使树定义混乱。