标签: lua-table

是否有(简单)方法来获取Lua表的内存使用?

我想知道Lua表使用了多少内存 - 没有遍历表内容并计算使用量.是否有Lua 5.1功能或第三方库可以帮助解决这个问题.

lua memory-management lua-table

5
推荐指数
1
解决办法
7769
查看次数

从两个输入表创建表.输出表的键将来自第一个输入,值将来自第二个输入表

我有一张桌子,我在其中传递名字:

names = {'Sachin', 'Ponting', 'Dhoni'}

在其他表格中,我传递的是国名:

country = {"India", "Australia", "India"}

我想要输出表:

out_table = {Sachin="India", Ponting="Australia", Dhoni="India"}

lua lua-table

5
推荐指数
1
解决办法
100
查看次数

如何在内存中处理Lua表?

lua如何处理表的增长?

它等同ArrayList于Java吗?即需要连续内存空间,并且随着它比已经分配的空间增大,内部数组被复制到另一个内存空间.

是否有一种聪明的方式来领导它?

我的问题是,如何将表存储在内存中?我不是在问Lua如何实现数组.

arrays lua memory-management lua-table

5
推荐指数
1
解决办法
1288
查看次数

Lua中的子类构造函数方法

很难掌握Lua中的继承(和元表)概念。官方教程没有具体说明如何为子类创建构造函数。

我的示例的问题player:move()nil,因此播放器仍然是Object课程

-- Generic class
Object = {}
function Object:new (type,id,name)
    o = {}
    self.type = type or "none"
    self.id = id or 0
    self.name = name or "noname"
    setmetatable(o, self)
    self.__index = self
    return o
end

function Object:place(x,y)
    self.x = x
    self.y = y
end

-- Player class
Player = Object:new()

function Player:new(id,name)
    o = Object:new("player",id,name)
    o.inventory = {}
    o.collisions = {}
    return o
end

function Player:move(x,y)
    return print("moved to " ..x.." x …
Run Code Online (Sandbox Code Playgroud)

inheritance lua lua-table

5
推荐指数
1
解决办法
1207
查看次数

逐行将文件读入数组

抱歉,我仍在学习lua。您能纠正我吗,为什么文件中的数据无法逐行读取?

这是我在points.txt文件中的示例数据:

lexxo:30:1
rey:40:2
lion:40:2
prince:50:3
royal:50:3
Run Code Online (Sandbox Code Playgroud)

所以当我从上面得到的是二维数组(表)

player = {{(name),(points),(which var point earned on index)},
          {(...),(...),(...)}};
Run Code Online (Sandbox Code Playgroud)

所以问题是,当我尝试循环打印文件中的所有数据时。它只打印最后一行。所以我想要打印所有的

line_points =  {}
player_data = {{}}

local rfile = io.open("points.txt", "r")
for line in rfile:lines() do
    playername, playerpoint, playeridpoint = line:match("^(.-):(%d+):(%d+)$")
    player_data = {{playername, playerpoint, playeridpoint}}
    line_points[#line_points + 1] = player_data
end

for i = 1, #player_data do
    player_checkname = player_data[i][1] -- Get Player Name From Array for checking further
    player_checkpnt = player_data[i][3] -- Get Player ID Point From Array …
Run Code Online (Sandbox Code Playgroud)

lua lua-table luafilesystem

5
推荐指数
1
解决办法
2267
查看次数

表的 __gc 元方法的 Lua 5.1 解决方法

我目前面临的问题是你不能__gc在 Lua 5.1 中使用表的方法,因为它们是在 Lua 5.2 中实现的。但是,我想在收集 lua 表后释放分配的本机资源。是否可以制定一个解决方法,__gc为 Lua 5.1 提供 Lua 5.2 中元方法的功能?

lua garbage-collection lua-table lua-5.1

4
推荐指数
1
解决办法
3940
查看次数

Lua成对与其编写的顺序相同

有没有办法按照下面的表格以与写入的顺序相同的方式循环一个表格?

local tbl = {
    ["hello"] = 1,
    [2] = 2,
    [50] = 3,
    ["bye"] = 4,
    [200] = 5
}
Run Code Online (Sandbox Code Playgroud)

我的意思是,当我使用"成对"时,每次执行代码时我都会得到不同的顺序......

我正在寻找这样的东西:

function get_keys(tbl)
    local rtable = {}
    for k,v in pairs(tbl) do
        table.insert(rtable, k)
    end
    return rtable
end

local keys_of_tbl = get_keys(tbl)
for i = 1, table.getn(keys_of_tbl) do
    --Do something with: tbl[keys_of_tbl[i]]
end
Run Code Online (Sandbox Code Playgroud)

但是因为函数"get_keys"再次基于"成对",它将无法工作......

lua loops lua-table

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

数组作为 lua 表中的值

我找不到问题的答案:Can you have an array as value in a lua table?

local colors = {"blue" = {0,0,1,1}, "green" = {0,1,0,1}, "red" = {1,0,0,1} , "orange" = {0.5, 0, 0.5, 1}, "black" = {0,0,0,1}, "gold" = {1, 215/255, 0, 1}}
Run Code Online (Sandbox Code Playgroud)

我使用 corona sdk 在这一行收到错误:

'}' 预计位于 '=' 附近

arrays lua key-value coronasdk lua-table

4
推荐指数
1
解决办法
6366
查看次数

如何从Lua中的表中获取值

我有包含多个值的表,我想打印每个值。

像是:

“值_1”“值_2”等等。

 table = {
        {'value_1'},
        {'value_2'},
        {'value_3'},
        {'value_4'},
    }
Run Code Online (Sandbox Code Playgroud)

我尝试过for k, v但失败了:

for k, v in pairs(table) do
    print(v)
end
Run Code Online (Sandbox Code Playgroud)

lua lua-table

4
推荐指数
1
解决办法
3万
查看次数

Lua中如何根据表的值对表进行排序?

我有一个由键/值对组成的表:

mytable[a] = 1, 
mytable[b] = 4, 
mytable[r] = 7, 
mytable[f] = 2,
Run Code Online (Sandbox Code Playgroud)

ETC。

我想按数字对表格进行排序。所以我希望表格为 {(a, 1), (f, 2), (b, 4), (r, 7)} 我尝试使用

table.sort(mytable, function(a, b) return a[2] > b[2] end)
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用...谢谢

arrays lua lua-table

4
推荐指数
1
解决办法
4620
查看次数