Я искал ответ на этот вопрос в течение нескольких дней, мне удается каким-то образом использовать трюк, чтобы просто опустить эту часть Concatenation и просто использовать несколько отдельных циклов, чтобы повторно вставить разные значения в та же таблица ... но мой вопросОбъединение различных таблиц в Lua
по умолчанию table.sort использует < для сравнения элементов массива, так что он может только сортировать массивы чисел или массивов строк. Напишите сравнение функция, которая позволяет table.sort сортировать массивы смешанных типов. В отсортированном массиве все значения данного типа должны быть сгруппированы вместе. В каждой такой группе номера и строки должны быть отсортированы как обычно, и другие типы должны сортироваться произвольным, но последовательным образом.
A = { {} , {} , {} , "" , "a", "b" , "c" , 1 , 2 , 3 , -100 , 1.1 , function() end , function() end , false , false , true }
, как я сказал, я решил это, используя разные для петель, но есть способ, чтобы просто анализировать каждый элемент таблицы затем назначить его в другой таблице ??? Например: «Таблицы, Funcs, Nums, Strings, ...», то после анализа законченные просто объединяют их вместе, чтобы иметь одну и ту же таблицу только в отсортированной версии.
Мой Неэффективное Ответ на этот вопрос был:
function Sep(val)
local NewA = {}
for i in pairs(val) do
if type(val[i]) == "string" then
table.insert(NewA,val[i])
end
end
for i in pairs(val) do
if type(val[i]) == "number" then
table.insert(NewA,val[i])
end
end
for i in pairs(val) do
if type(val[i]) == "function" then
table.insert(NewA,tostring(val[i]))
end
end
for i in pairs(val) do
if type(val[i]) == "table" then
table.insert(NewA,tostring(val[i]))
end
end
for i in pairs(val) do
if type(val[i]) == "boolean" then
table.insert(NewA,tostring(val[i]))
end
end
for i in pairs(NewA) do
print(NewA[i])
end
end
вы можете вскипятить все это, как 4 линии. все, что вам нужно сделать, это проверить, является ли тип (lhs) == «number», и если это так возвращает lhs
Я не понимаю, почему мы должны вводить два значения в функции my_less? - это не просто вход для типа Table в функцию, а затем просто сортировка этой вещи в предопределенной манере ...? –
Это функция сравнения - вы * сравнение *. Сравнение по своей сути включает в себя сравнение по меньшей мере двух объектов. – Puppy