标签: lua-table

为什么这个Lua表中只有4个字段?不应该有7个?

为什么这个Lua表中只有4个字段?不应该有7个?

   polyline = {color="blue", thickness=2, npoints=4,
                 {x=0,   y=0},
                 {x=10, y=0},
                 {x=-10, y=1},
                 {x=0,   y=1}
               }

print(table.maxn(polyline))    -- returns 4. Why?
print(polyline[2].x)   -- returns 10. Why? 
Run Code Online (Sandbox Code Playgroud)

我认为polyline[2]会索引到"厚度",这是此表中的第二个字段.

lua lua-table

2
推荐指数
1
解决办法
250
查看次数

创建Lua高级表

需要创建一些表,以便我可以通过这种方式从中获取信息:

table[attacker][id]
Run Code Online (Sandbox Code Playgroud)

如果我会使用

print(table[attacker][id])
Run Code Online (Sandbox Code Playgroud)

它应该打印该.

尝试了很多方法,但没有找到任何好处......

我猜应该是这样的......

table.insert(table, attacker, [id] = value)
Run Code Online (Sandbox Code Playgroud)

^这不起作用.

有人能帮我吗?


编辑

好吧,当我这样尝试时:

x = {}
function xxx()
    if not x[attacker][cid] then
        x[attacker][cid] = value
    else
        x[attacker][cid] = x[attacker][cid] + value
    end
    print(x[attacker][cid])
end
Run Code Online (Sandbox Code Playgroud)

我收到一个错误说:

尝试索引字段'?' (零值)

lua insert multidimensional-array lua-table

2
推荐指数
1
解决办法
2058
查看次数

Lua:在字符串数组中存储值

我想为Lua数组中的每个字符串元素存储一些值.

-- Emulating different Browsers
local user_agent = {
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1",         
"Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.2 Safari/537.36",          
"Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1467.0 Safari/537.36",                   
"Mozilla/5.0 (Windows NT 6.1; rv:22.0) Gecko/20130405 Firefox/22.0",                                                                                  
"Mozilla/5.0 (X11; Linux i686; rv:21.0) Gecko/20100101 Firefox/21.0",                                                               
"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; FunWebProducts)",                                                          
"Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; InfoPath.1; SV1; .NET CLR 3.8.36217; WOW64; en-US)",               
"Mozilla/5.0 …
Run Code Online (Sandbox Code Playgroud)

lua lua-table

2
推荐指数
1
解决办法
8113
查看次数

Lua传递函数参数作为表键

我正在将Lua表的内容导出到HTML文件,以便可以在浏览器中显示内容。现在,在将函数参数作为表键传递时遇到问题。

我有这样一个稀疏表:

map = {}
for x = 1, 20 do
    map[x] = {}
    for y = 1, 20 do
       map[x][y] = {}
       map[x][y].node = math.random(1,20)
       map[x][y].image = "path/to/image.png"
    end
end
Run Code Online (Sandbox Code Playgroud)

我将表这样传递给我的函数:htmParser:_dumpSparseToHTML(map,20,20)其中map =我要传递的表,20,20 =数组的宽度和高度。在_dumpSparseToHTML中的某个地方,我将v.node和v.image的值写入文件。我如何在不知道表中键名的情况下处理完全相同的事情?例如map可能包含map [x] [y] .value,map [x] [y] .gfx,map [x] [y] .nodeType,我想将它们作为htmParser:_dumpSparseToHTML(map,20 ,20,值,gfx,nodeType等)。

我知道Lua可以通过将函数定义为_dumpSparseToHTML(map,20,20,...)来处理可变数量的参数。我尝试执行以下操作:

--_table = map
for i,v in ipairs(arg) do 
     file:write("<td>".._table[x][y].v.."</td>)
end
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:“试图连接字段'v'(nil值)。所以,我的问题是:我如何传递可变数量的参数作为表键?

lua lua-table

2
推荐指数
1
解决办法
578
查看次数

在Lua中以0开始表的索引

我想设置表成员的索引,但仍然命名它们.那可能吗?

local table = {
    ["cat"] = {
        ["fish"] = { stuff = "bla1", stuff2 = "bla" },
        ["mouse"] = { stuff = "bla2", stuff2 = "bla" },
        ["bird"] = { stuff = "bla3", stuff2 = "bla" },
    },
    ["dog"] = {
        ["fish"] = { stuff = "bla1", stuff2 = "bla" },
        ["mouse"] = { stuff = "bla2", stuff2 = "bla" },
        ["bird"] = { stuff = "bla3", stuff2 = "bla" },
    },
}
Run Code Online (Sandbox Code Playgroud)

table["cat"][1]fish,但我想要的table["cat"][0]是 …

arrays lua lua-table

2
推荐指数
2
解决办法
543
查看次数

创建Lua表,如下所示

我正在尝试使用love2d在lua中设计这样一个表.当我阅读很多关于Lua的教程时,我无法创建这样的表,因为我不理解这个概念.任何人都可以帮我创建这个表吗?

在此输入图像描述

lua love2d lua-table

2
推荐指数
1
解决办法
111
查看次数

将字符串拆分为单个字符并将字符放入表中

我正在尝试创建一个可以将单词作为输入的程序,找到单词的每个字母,然后通过我拥有的编码系统运行它.每个字母都分配给一个特定的数字.我希望程序能够识别一个字母并将其数字保存到变量中,以便可以通过一些数学运算来运行.我完成了数学部分并且正在工作,但它一次只能占用一个字符.从我在网上找到的LUA表和字符串库的一些教程来看,我的代码应该可以工作,但表总是打印'nil'.

print("Word?")
str = io.read()
chars = {}

for i in string.gmatch(str, "%U") do
    table.insert(t, i)
end

print(chars)
Run Code Online (Sandbox Code Playgroud)

string lua lua-table

2
推荐指数
1
解决办法
221
查看次数

如果使用false初始化Lua表中的字段,是否有更好的方法可以查看它是否存在

正如标题所暗示的那样.考虑这个来源:

A = {}
A.T = true
A.F = false
A.N = 123
A.S = "ASDF"
A.E = ""

for k,v in pairs(A) do
  local Ex = "" 
  if(A[k]) then Ex = "YES"
  else Ex = "NO"
  end
  print(k,v,Ex)
end
Run Code Online (Sandbox Code Playgroud)

哪些打印(订单不同,因为它是pairs):

T       true    YES
F       false   NO
S       ASDF    YES
N       123     YES
E               YES
Run Code Online (Sandbox Code Playgroud)

正如你在这里看到的那样A.F = false,if声明说它不存在.有没有更好的方法来查看F作为一个字段在表中是否存在尽管是一个布尔false值,其中写入的值更好pairs

lua lua-table

2
推荐指数
1
解决办法
78
查看次数

Lua - 在循环中扩展表

注意:这是Roblox的Lua版本.我有以下代码片段:

for index, child in pairs(workspace.IMG:GetChildren()) do
    xyz = child.Position
    ImgScript = {}
    table.insert(ImgScript, -1, child.BrickColor.Number, xyz.X, xyz.Y, xyz.Z)
end
Run Code Online (Sandbox Code Playgroud)

那么workspace.IMG一个模型中有一堆砖.我试图将该模型转换为脚本生成器脚本.所以我可以Instance.new('Part', script) blah blah blah为每块砖做它,但这相当于一个大脚本.所以我正在制作一个包含所有必要信息的表格(BrickColor和Position).这是我希望表格看起来像:

{{BrickColor Number, X, Y, Z}, {123, 14, 52, 65}, {156, 13, 52, 65}, etc.}
Run Code Online (Sandbox Code Playgroud)

但我目前拥有的剧本并没有制作这种表格.它没有做任何事情; 事实上,我不希望它做我要求的事情; 我只是不知道如何制作这种表.

arrays lua roblox lua-table

2
推荐指数
1
解决办法
846
查看次数

Lua-插入表格值

我得到一张表格,可以这样说:

house = {
             ["Street 22"] = {
                        {name = "George", age = 20},
                        {name = "Pete", age = 25}
                      },
             ["Street 30"] = {
                        {name = "John", age = 32},
                    }
           }
Run Code Online (Sandbox Code Playgroud)

我想以编程方式插入第三间房子,即关键的“ Street 35”,上面有一个人的详细信息,尼克和30岁。我对lua比较陌生,不知道该怎么做,我必须使用,table.insert但在遵循上述格式时遇到了麻烦...请帮忙吗?

lua lua-table

2
推荐指数
1
解决办法
1281
查看次数

标签 统计

lua ×10

lua-table ×10

arrays ×2

insert ×1

love2d ×1

multidimensional-array ×1

roblox ×1

string ×1