175得票9回答
为什么Lua数组(表)从1开始而不是0?

我不理解为什么Lua这部分的决策是从1开始索引。我已经阅读了(像其他许多人一样)这篇优秀的论文。对于这门非常易学且易编程的语言来说,它似乎是一个奇怪的角落。不要误解我,Lua实在是太棒了,但是一定有一个解释。我在网上找到的大部分资料都只是说明索引从1开始,就此打住。 阅读它的设计者对这个问题...

157得票5回答
如何在Lua中检查一张表(table)是否包含某个元素?

是否有一种方法可以检查表格中是否包含某个值?我有自己的(天真)函数,但我想知道是否存在一些“官方”的方法来实现这个功能?或者更高效的方法...function table.contains(table, element) for _, value in pairs(table) do ...

146得票8回答
确定Lua表是否为空(不包含任何条目)的最有效方法是什么?

最有效的方法是确定一个表格是否为空(即,当前既不包含数组样式值,也不包含字典样式值)? 目前,我正在使用 next():if not next(myTable) then -- Table is empty end 有没有更有效的方法? 注意:在此处,# 运算符不足以满足要求,因为...

129得票2回答
如何通过键名删除Lua表中的条目?

我有一个用作哈希表的lua表,即使用字符串作为键:local map = { foo = 1, bar = 2 } 我想要从这个表中通过键名删除一个元素。虽然有一个table.remove()方法,但它只能通过索引(即数字)来删除元素,而不能用通用的键名。我希望能够通过table.remove...

106得票3回答
如何在Lua中向表格添加内容

我正试图找出等效于:foo = [] foo << "bar" foo << "baz" 我不想自己编写递增索引,有没有简单的方法可以实现?

90得票10回答
如何合并两个表格并覆盖其中重复的元素?

我需要合并两个表格,如果某个项目在两个表格中都存在,第二个表格的内容将覆盖第一个表格的内容。我寻找了一下,但标准库好像没有提供这样的功能。请问在哪里可以获取此类函数?

85得票5回答
如何在Lua中遍历表?

所以,我有一个表格,大致如下:arr = { apples = { 'a', "red", 5 }, oranges = { 'o', "orange", 12 }, pears = { 'p', "green", 7 } } 看起来无法根据索引访问它们,而且这些值本身就是表格,所...

70得票16回答
如何通过值复制Lua表?

最近我写了一些类似以下的 Lua 代码:local a = {} for i = 1, n do local copy = a -- alter the values in the copy end 显然,这不是我想要的,因为在Lua中变量保存的是匿名表的引用而不是表本身的值。这在...

69得票12回答
在Lua列表中搜索项目

如果我有一个像这样的项目列表:local items = { "apple", "orange", "pear", "banana" } 我该如何检查这个列表中是否包含"orange"? 在Python中,我可以这样做:if "orange" in items: # do somet...

56得票15回答
Lua中的表连接

原始帖子 鉴于Lua中没有内置函数,我正在寻找一种允许我将表格连接在一起的函数。我已经搜索了很多并尝试了我遇到的所有解决方案,但似乎没有一个能正常工作。 情景如下:我正在使用嵌入应用程序的Lua。 应用程序的内部命令以表格形式返回值列表。 我尝试的是在循环中递归调用该命令,并将返回的值(...