Lua如何在不使用循环的情况下将二维表的第一个成员放入新表中?
我正在使用LUA脚本。我有以下数据:Lua如何在不使用循环的情况下将二维表的第一个成员放入新表中?,lua,Lua,我正在使用LUA脚本。我有以下数据: choice = { { 'A', '1' }, { 'B', '2' }, { 'C', '3' }, } 我想在不使用循环的情况下将第一个成员放入新表。这些可能吗?类似这样的: first = { 'A', 'B', 'C' } second = { '1', '2', '3' } 你不能 唯一的方法是使用循环。您可以将循环放入一个函数中,这样
choice = {
{ 'A', '1' },
{ 'B', '2' },
{ 'C', '3' },
}
我想在不使用循环的情况下将第一个成员放入新表。这些可能吗?类似这样的:
first = { 'A', 'B', 'C' }
second = { '1', '2', '3' }
你不能
唯一的方法是使用循环。您可以将循环放入一个函数中,这样您就看不到它,但它仍然会在那里。您不能这样做
唯一的方法是使用循环。您可以将循环放入一个函数中,这样您就看不到它了,但它仍然会存在。没有快速的解决方案。更复杂的解决方案取决于您想做什么,因此,如果您只想选择第一个元素,可以使用:
choice = {
{ 'A', '1' },
{ 'B', '2' },
{ 'C', '3' }
}
first = {}
firstMeta = getmetatable(first) or {}
function firstMeta.__index(obj, i)
return choice[i][1]
end
function firstMeta.__len(obj)
return #choice
end
setmetatable(first, firstMeta)
f = table.pack(table.unpack(first))
在f中,您选择的第一个元素的副本没有循环,事实上,表中隐藏了循环。解包没有快速解决方案。更复杂的解决方案取决于您想做什么,因此,如果您只想选择第一个元素,可以使用:
choice = {
{ 'A', '1' },
{ 'B', '2' },
{ 'C', '3' }
}
first = {}
firstMeta = getmetatable(first) or {}
function firstMeta.__index(obj, i)
return choice[i][1]
end
function firstMeta.__len(obj)
return #choice
end
setmetatable(first, firstMeta)
f = table.pack(table.unpack(first))
如果您选择了没有循环的第一个元素的副本,那么实际上在表中隐藏了循环。解包这个计数是:first={choice[1][1],choice[2][1],choice[3][1]}?这个计数是:first={choice[1][1],choice[2][1],choice[3][1]}?