有没有无需pair()也能逐个访问数组元素的高效方法?

2026-04-01 19:541阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计430个文字,预计阅读时间需要2分钟。

有没有无需pair()也能逐个访问数组元素的高效方法?

我可以使用常规的for循环遍历数组(例如{a, b, c})。然后使用for _ in pairs({ 'a', 'b', 'c' }) do io.write(v..'\n') end进行迭代输出。但当我有一个普通的旧数组时,我实际上并没有发现什么特别关心的问题。

我可以使用常规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

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

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

local object = { platform = {1,2,3,4}, mob = {4,3,2,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节

有没有无需pair()也能逐个访问数组元素的高效方法?

标签:

本文共计430个文字,预计阅读时间需要2分钟。

有没有无需pair()也能逐个访问数组元素的高效方法?

我可以使用常规的for循环遍历数组(例如{a, b, c})。然后使用for _ in pairs({ 'a', 'b', 'c' }) do io.write(v..'\n') end进行迭代输出。但当我有一个普通的旧数组时,我实际上并没有发现什么特别关心的问题。

我可以使用常规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

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

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

local object = { platform = {1,2,3,4}, mob = {4,3,2,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节

有没有无需pair()也能逐个访问数组元素的高效方法?

标签: