问题标签 [lua-table]

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.

0 投票
3 回答
16648 浏览

c++ - 如何使用 C API 创建嵌套 Lua 表

我想创建一个像

使用 C API?

我目前的做法是

在循环中创建内部表。在这个循环之前,我使用

为 2 个数字槽创建外部表。

但是如何将内部表保存到外部表?

0 投票
1 回答
100035 浏览

lua - 如何通过其键删除lua表条目?

我有一个用作哈希图的 lua 表,即带有字符串键:

我想“弹出”该表中由其键标识的元素。有一种table.remove()方法,但它只需要删除元素的索引(即数字)而不是通用键。我希望能够做到table.remove(map, 'foo'),这就是我的实现方式:

有更好的方法吗?

0 投票
1 回答
2364 浏览

lua - 在 Lua 中,如何删除表中的表?

例如:

我想删除 789 和其中的所有数据。我都试过了: table.remove( items, 2 ); 和 table.remove(items, 789); (我不确定索引是如何工作的)没有运气。

0 投票
3 回答
17037 浏览

file - 如何将文本文件加载到 Lua 中的类似表的变量中?

我需要将文件加载到 Lua 的变量中。

假设我得到了

每个之间都有空间。我需要将其中包含 x 多个此类行的文本文件加载到某种对象中 - 或者至少将一行剪切为字符串数组除以空格。

这种工作在 Lua 中可行吗?我应该怎么做?我对 Lua 很陌生,但我在 Internet 上找不到任何相关的东西。

0 投票
6 回答
48814 浏览

sorting - 在 Lua 中按值关联排序表

我有一个键 => 值表,我想在 Lua 中排序。键都是整数,但不是连续的(并且有意义)。Lua 唯一的排序函数似乎是table.sort,它将表视为简单数组,丢弃原始键及其与特定项目的关联。相反,我基本上希望能够使用PHP 的asort()功能。

是)我有的:

排序操作后我想要的:

有任何想法吗?

编辑:根据答案,我将假设这只是我正在使用的特定嵌入式 Lua 解释器的一个奇怪的怪癖,但在我的所有测试中,pairs()总是按照它们添加到的顺序返回表项桌子。(即上述两个声明会以不同的方式迭代)。

不幸的是,因为这不是正常行为,所以看起来我无法得到我需要的东西;Lua 没有内置(当然)必要的工具,而且嵌入式环境太有限,我无法解决它。

不过,谢谢大家的帮助!

0 投票
2 回答
9278 浏览

lua - 获取表项索引

我无法获得表条目索引。我需要它从表中删除一个项目。

我用来table.insert向表中添加条目。

另一个问题:为什么 Lua 没有“重载”到函数 table.remove 以便可以通过关联索引删除项目?

0 投票
3 回答
3932 浏览

sorting - 无法使用关联索引对表进行排序

为什么我不能使用 table.sort 对具有关联索引的表进行排序?

0 投票
2 回答
3063 浏览

sorting - 在排序函数中处理 nil

我不知道如何处理nils我的排序功能。

当我检查它时,table.sort在一些呼叫后崩溃。

出现此错误:排序功能无效。但是根据文档,如果 a 在 b 之后,排序函数应该返回 false。否则为真。

如果我删除删除该代码,它当然会崩溃索引 nil。

0 投票
4 回答
2898 浏览

arrays - Lua的混合数组和哈希表;它是否存在于其他任何地方?

Lua 的表实现将其元素分为两部分:数组部分和散列部分。

这样的事情是否存在于任何其他语言中?

看看Lua 5.0 的实现中的第 4 节,表格。

Lua 5.1 源代码 - table.c

0 投票
1 回答
435 浏览

variables - 动态分配的表变量?

在 Lua 中编写一个函数,创建两个表。我希望将表分配给添加了 x 的值名称,并添加了一个 ay。例如,如果 name 是 line,它将创建两个表 linex 和 liney,但我不知道该怎么做。以下显然不起作用(并且仅用于显示目的)但我将如何去做呢?

稍后我希望在写入值后访问“linex”和“liney”。