在 Lua 中泛化一组链接的 iup 句柄



我将Lua与IUP一起使用,并且有许多对IUP句柄,因此:

UseField1 = iup.toggle {blah blah blah}
Field1Label = iup.text {blah blah blah}

字段对 (maxFields( 的数量目前为 5,但可能会有所不同。

在我的Lua程序的不同地方,我需要做一些事情:

for N in 1,maxFields do
If UseFieldN.value =="ON" then
DoSomethingWith(FieldNLabel.value, N)
end
end

我知道我不能构造动态变量名称,但是有没有办法将其编写为简洁的循环,而不是:

If UseField1 =="ON" then DoSomethingWith(Field1Label.value, 1) end
If UseField2 =="ON" then DoSomethingWith(Field2Label.value, 2) end
etc

我建议使用Lua表。

t = {}
t.UseField1 = iup.toggle {blah blah blah}
t.Field1Label = iup.text {blah blah blah}
...

t[1] = iup.toggle {blah blah blah}
t[2] = iup.text {blah blah blah}
...

然后遍历表的元素:

for index,elem in pairs(t) do 
If elem.value == "ON" then
DoSomethingWith(elem.value, N)
end
end

for index,elem in ipairs(t) do -- when using only numeric indices
If elem.value == "ON" then
DoSomethingWith(elem.value, N)
end
end

相关内容

  • 没有找到相关文章

最新更新