【发布时间】:2012-09-29 19:40:16
【问题描述】:
几天来我一直在寻找这个问题的答案,我设法以某种方式使用一个技巧来省略这个连接部分,并使用几个单独的循环将不同的值重新插入到同一个表中...... 但我的问题是
默认情况下,table.sort 使用
A = { {} , {} , {} , "" , "a", "b" , "c" , 1 , 2 , 3 , -100 , 1.1 , function() end , function() end , false , false , true }
正如我所说,我使用不同的 for 循环解决了这个问题,但是有没有办法只分析表的每个元素,然后将其分配给不同的表???比如:"Tables,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
【问题讨论】: