迭代列表的特定条目

时间:2014-11-03 07:32:12

标签: list lua iteration lua-table

给出的表格如下:

t = {mon, tue, wed, thu, fri, sat, sun, spe, btn1, btn2, btn3, btn4, btn5, bar1, bar2, bar3, some_other_stuff, ... } 
-- assumed that all entries are existing objects

现在我想遍历所有“日”对象并给他们一个回调。

是否有类似(伪)的东西:

for _,v in pairs(t.{mon,tue,wed,thu,fri,sat,sun,spe})do
   v.callback = function()
      foo(bar)
   end
end

因此,当您看到我想要遍历该表的特定部分时。这可能吗? 在我的例子中,由于回调非常简单,因此它并不是真正必要的。 但是我正在尝试制造一个工厂构造,而且只是赤手空拳来磨练我的齿轮。

2 个答案:

答案 0 :(得分:2)

呃,没关系,这很简单:

for _,v in pairs({t.mon, t.tue, t.wed, ...})do
   -- do your job
end

答案 1 :(得分:2)

虽然your solution已足够,但更有效的方法是定义新表:

do
    local days = { 'mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun' }
    for _, v in ipairs( dayes ) do
       t[v].callback = function()
          foo(bar)
       end
    end
end