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 IPAIR未从表中获取数据_Lua - Fatal编程技术网

Lua IPAIR未从表中获取数据

Lua IPAIR未从表中获取数据,lua,Lua,我是Lua的新手。尝试一些教程。我的理解是,在Lua中,表是一个键值存储,任何允许的Lua类型都是除nil以外的键。IPAIR是一种在表上迭代直到IPAIR达到nil键的方法 我试着用上面的理解来理解下面的内容。但第二个ipairs循环没有打印任何内容。 下面的代码段打印键和值 a ={} for i=1,1000 do a[i]=i end for i,data in ipairs(a) do print("key is:" .. i) prin

我是Lua的新手。尝试一些教程。我的理解是,在Lua中,表是一个键值存储,任何允许的Lua类型都是除nil以外的键。IPAIR是一种在表上迭代直到IPAIR达到nil键的方法

我试着用上面的理解来理解下面的内容。但第二个ipairs循环没有打印任何内容。 下面的代码段打印键和值

   a ={}
  for i=1,1000 do
    a[i]=i
  end

  for i,data in ipairs(a)
  do
    print("key is:" .. i)
    print("value is " .. data)
    print("\n")
  end
这个没有打印任何东西

b={}
  b["a"]="a"
  b["name"]="test"
  b[10] ="b10"
  b["@"]="@@"

  for i,data in ipairs(b)
  do
    print("key is :" .. i)
    print("data is :" .. data)
    print("\n")
  end
有什么问题吗

我正在尝试的完整代码

function work_with_table()
  a = {}
  for i=1,1000 do
    a[i]=i
  end

  for i,data in ipairs(a)
  do
    print("key is:" .. i)
    print("value is " .. data)
    print("\n")
  end

  b={}
  b["a"]="a"
  b["name"]="test"
  b[10] ="b10"
  b["@"]="@@"

  for i,data in ipairs(b)
  do
    print("key is :" .. i)
    print("data is :" .. data)
    print("\n")
  end

end

work_with_table()
编辑1:


我相信这个方块能创造一对?(“a”,t[“a”])(“name”,t[“name”]))

编辑2:

当表的索引基于整数时,请使用ipair。否则,将对用于通用键、值循环。谢谢大家的帮助……


迭代对(1,t[1])`,(2,t[2]),…,直到第一个nil值。

您使用“IPAIR”而不尝试使用“pairs”?比较一下,我对
IPAIR
使用助记符整数对。我相信这个块创建了一对吗?(“a”,t[“a”])(“name”,t[“name”])b={}b[“a”=“a”b[“name”]=“test”b[10]=“b10”b[“@”]=“@”@”@GAK再次阅读了lhf的答案——他说的是键是1中的数字的配对,而不是像你的例子中那样的任何随机字符串。为此,您需要使用
。顺便说一句,
输出不以任何方式排序。
b={}
  b["a"]="a"
  b["name"]="test"
  b[10] ="b10"
  b["@"]="@@"