Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在lua中创建动态矩阵_Lua - Fatal编程技术网

如何在lua中创建动态矩阵

如何在lua中创建动态矩阵,lua,Lua,我正试着用lua中的矩阵来制作我的地下城生成器。基本上我会有矩阵[x][y],里面的结构会存储每个“房间”的信息。但因为它是一个发电机,我不知道我会有多少房间,我知道的唯一方法就是做这样的东西: mat = {} for i = 0, 10 do mat[i] = {} for j = 0, 10 do mat[i][j] = 1 end end 所以问题是,有没有一种方法可以创建一个矩阵,当我向它添加数据时,它的大小会动态增加?因为将会有空白,因为地牢

我正试着用lua中的矩阵来制作我的地下城生成器。基本上我会有矩阵[x][y],里面的结构会存储每个“房间”的信息。但因为它是一个发电机,我不知道我会有多少房间,我知道的唯一方法就是做这样的东西:

mat = {}
for i = 0, 10 do
    mat[i] = {}
    for j = 0, 10 do
        mat[i][j] = 1
    end
end

所以问题是,有没有一种方法可以创建一个矩阵,当我向它添加数据时,它的大小会动态增加?因为将会有空白,因为地牢将像一个树枝。

在Lua中编程:

此外,表格没有固定的大小;可以添加任意数量的元素 您希望动态创建一个表

要处理对不存在的表成员的访问,从而避免索引nil值时出现错误消息,可以使用实现uu index元方法的元表

在下面的示例中,Lua将在您的表中插入一个空表,只要它还不存在

详情请参阅

local mt_2D = {
   __index =
      function(t, k)
         local inner = {}
         rawset(t, k, inner)
         return inner
      end
}
local array2D = setmetatable({}, mt_2D)

array2D[2][5] = 'it works'

print(array2D[2][5])    -->  it works

从Lua中编程:

此外,表格没有固定的大小;可以添加任意数量的元素 您希望动态创建一个表

要处理对不存在的表成员的访问,从而避免索引nil值时出现错误消息,可以使用实现uu index元方法的元表

在下面的示例中,Lua将在您的表中插入一个空表,只要它还不存在

详情请参阅

local mt_2D = {
   __index =
      function(t, k)
         local inner = {}
         rawset(t, k, inner)
         return inner
      end
}
local array2D = setmetatable({}, mt_2D)

array2D[2][5] = 'it works'

print(array2D[2][5])    -->  it works

Lua表本质上是动态的。他们没有固定的尺寸。这是一张桌子的桌子。与其他语言中的“不规则数组”类似,只是表不是数组。(如果您想要“array length”和其他类似于数组的属性,则必须保留表a“”,这比“array”更具限制性。)Lua表本质上是动态的。他们没有固定的尺寸。这是一张桌子的桌子。与其他语言中的“不规则数组”类似,只是表不是数组。(如果您想要“数组长度”和其他类似数组的属性,您必须保留表a“”,这比“数组”更具限制性。)是否有任何示例可以让我遍历插入到此表中的所有值?@Paulix-
对于x,t成对(array2D)对于y,对中的值(t)进行打印(x,y,value)end end
是否有任何示例可以让我运行此表中插入的所有值?@palix-
对于x,t成对(array2D)对于y,值成对(t)打印(x,y,value)end