我正在尝试排序但是有一个零。我怎么能绕过这个?
使用代码:(按名称和HP排序。万一HP有重复)
T = { {Name = "Mark", HP = 54, Breed = "Ghost"},
{Name = "Stan", HP = 24, Breed = "Zombie"},
{Name = "Juli", HP = 100, Breed = "Human"},
{ HP = 100, Breed = "Human"}
}
function Sorting(T)
table.sort(T,
function(x,y)
return x.Name < y.Name and x.HP < y.HP
end
)
end
答案 0 :(得分:3)
假设您想要通过HP进行比较,如果名称不可用,那么您如何将排序比较功能更改为:
function(x, y)
if x.Name == nil or y.Name == nil then return x.HP < y.HP
else return x.Name < y.Name and x.HP < y.HP
end
end
您的问题是,如果名称不是一直无法使用,那么名称就不是真正的密钥。