数组 – 有没有办法在不使用pair()的情况下遍历数组?

前端之家收集整理的这篇文章主要介绍了数组 – 有没有办法在不使用pair()的情况下遍历数组?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我可以使用常规for循环遍历数组/表(例如{‘a’,’b’,’c’}).然后使用对进行迭代

for _,v in pairs({'a','b','c'}) do
  io.write(v..'\n')
end

但是当我有一个普通的旧阵列时,我真的没有发现自己关心钥匙.

有没有像迭代一样的方法

for value in array do end

我确实看到了这种情况.例如,我正在使用库在我的游戏中创建地图,我发现你可以像这样访问地图图层中的对象

for object in map.layer["platform"].nameIs("platform") do

有没有像这样迭代的方法

解决方法

and i see you can access objects in a map layer like this
for object in map.layer[“platform”].nameIs(“platform”) do

@H_403_39@

你在这里看到的只不过是与自定义迭代器一起使用的泛型.
.nameIs(“platform”)返回基本上像ipairs一样的函数.

例如,可以像这样实现该语法(尽管它不是您的库可能实际执行的操作):

local object = {
    platform = {1,2,3,4},mob = {4,1}
}

function object.nameIs(idx)
    local array = object[idx]
    local i = 0
    return function ()
        i = i+1
        return array[i]
    end
end

print "-- Platforms --"
for value in object.nameIs("platform") do
    print(value)
end

print "-- Mobs --"
for value in object.nameIs("mob") do
    print(value)
end

有关更详细的说明,请参阅“Lua编程”在线手册,您需要查看第7 – Iterators and the Generic For

猜你在找的Lua相关文章