lua中ipairs和pairs

两个都是可以进行迭代遍历

for i, v in ipairs( a ) do
  print( i, v )
end

for i, v in pairs( a ) do
  print( i, v )
end

两者通过上述遍历,都会从下标为1开始遍历,区别:

ipairs遍历的时候如果遇到nil就会终止遍历,如果没有nil则遍历到尾部终止。

pairs会遍历全部元素,遇到nil也不会终止,而且会遍历到-1,0等下标的元素

如下代码:

function test1( a )

  for i, v in ipairs( a ) do
    print( i, v )
  end

end

function test2( a )

  for i, v in pairs( a ) do
    print( i, v )
  end

end

c = { [-1] = 100, [-2] = 9910, [0] = 99, 22, 11, 44, }
print( "-----------ipairs----------" )
test1( c )
print( "-----------pairs----------" )
test2( c )

输入结果:

原文地址:https://www.cnblogs.com/Colored-Mr/p/4682885.html