Есть ли простой способ объединить две таблицы, которые являются последовательностями? НапримерОбъединить последовательности таблиц в lua
a = {1, 2, 3}
b = {5, 6, 7}
c = cat(a,b)
где c
будет таблица {1,2,3,5,6,7}
?
Есть ли простой способ объединить две таблицы, которые являются последовательностями? НапримерОбъединить последовательности таблиц в lua
a = {1, 2, 3}
b = {5, 6, 7}
c = cat(a,b)
где c
будет таблица {1,2,3,5,6,7}
?
function cat(t, ...)
local new = {unpack(t)}
for i,v in ipairs({...}) do
for ii,vv in ipairs(v) do
new[#new+1] = vv
end
end
return new
end
Он использует итерацию, чтобы добавить элементы каждого массива к новому.
Следует также отметить, что {unpack (t)} будет работать только в том случае, если у вас меньше определенного количества элементов из-за того, как в Lua работают кортежи. Это зависит от того, что вы делаете, но если оно мало, вам, вероятно, не о чем беспокоиться.
Вам не хватало единственного места в первой строке, поэтому блок кода не работал;) Помните: четыре пробела делают код :) –
Обратите внимание, что '{unpack (t)}' работает только до один миллион элементов таблицы (или 15000, если у вас есть 16 бит 'int'). – siffiejoe
@siffie Последнее, что я проверил, было 8K ... – warspyking
Попробуйте взглянуть на [это] (http://stackoverflow.com/questions/1283388/lua-merge-tables) и [this] (http://stackoverflow.com/questions/1410862/concatenation-of -tables-in-lua) –
Отличный и точно сформулированный вопрос. К сожалению, это дубликат проблем с более низким качеством. –