|
table.sort 用来对 table 进行排序。
table.insert 将元素插入 table 中。
table.sort 简单示例代码:
- T = {4, 5, 10, 15}
- table.sort(T, function(A, B) return not (A < B) end)
- for _, kil in ipairs(T) do
- print (kil)
- end
复制代码
输出:
table.sort 的第 1 个参数是要进行排序的 table,第 2 个参数是个比对函数,可以是匿名函数;如果返回写成 return (A < B),那么将元素从小到大排序;如果返回写成 return (A > B),那么将元素从大到小排序;如果在返回表达式前使用关键字 not,那么按照相反次序排序。
需要注意的是,table.sort 并没有返回一个排好序的 table 副本,而是对原来的 table 进行排序。
下面的例子中包含了 table.sort 和 table.insert 的示例:
- NameToInstr = { John = "rhythm guitar",
- Paul = "lead guitar",
- George = "lead guitar",
- Ringo = "drumkit"
- }
-
- Sorted = {}
- for Name, Instr in pairs(NameToInstr) do
- table.insert(Sorted, {Name = Name, Instr = Instr})
- end
- table.sort(Sorted, function(A, B) return A.Name < B.Name end)
- for _, NameInstr in ipairs(Sorted) do
- print(NameInstr.Name .. " played " .. NameInstr.Instr)
- end
复制代码
运行输出:
George played lead guitar
John played rhythm guitar
Paul played lead guitar
Ringo played drumkit
table.insert 的用法是 table.insert(Arr, Val),它将 Val 插入到 Arr 最后一个元素的下一个位置处,因此相当于 Arr[#Arr + 1] = Val 。
|
|