调用方式
Functions.collections.keys(array)
将其记录为名为 Functions.collections.keys 的依赖项(接受自动补全即可完成),然后按该名称调用。
作用
收集表的键,并使用 Lua 的小于比较按其对应的值排序。这是按值排序而不是按键名排序;值相等时键的顺序不确定。
参数
| 名称 | 类型 | 作用 |
|---|---|---|
array | table | 其值之间必须可以相互比较的表。 |
返回值
| 1 | table | 按对应值排序的键的密集数组。 |
|---|
版本
内置辅助函数在每个版本上都会注册。不同的是它们读取的游戏 API;某个 API 缺失时,辅助函数会改用后备方案,或返回 nil 并附上原因。
它不直接读取任何游戏 API。
插件如何调用它
- 单位分类 (widget)
class:SetList(addon.classifications, Functions.collections.keys(addon.classifications)) - 战斗动作历史 (widget)
action:SetList(addon.actions, Functions.collections.keys(addon.actions)) - 战斗动作历史时间 (widget)
action:SetList(addon.actions, Functions.collections.keys(addon.actions)) - 生物类型 (widget)
class:SetList(addon.creatures, Functions.collections.keys(addon.creatures)) - 存在某类减益效果 (widget)
debufftype:SetList(addon.debufftypes, Functions.collections.keys(addon.debufftypes)) - 扩展角色属性 (widget)
stat:SetList(ecs_state.stats, Functions.collections.keys(ecs_state.stats)) - 扩展角色属性百分比 (widget)
stat:SetList(ecs_state.percentages, Functions.collections.keys(ecs_state.percentages)) - 在队伍中 (widget)
unit.configure=function() unit:SetList(units,Functions.collections.keys(units));unit:SetValue(value.unit or "player") end
以及另外 9 处: 副本 (widget), 范围内的生命值 (widget), 范围内的生命值百分比 (widget), 范围内的法力值 (widget), 范围内的法力值百分比 (widget), 职责 (widget), 存在图腾 (widget), 图腾剩余时间 (widget), 区域 PvP (widget)
源码
Functions/collections.lua,第 21 行。在游戏中为只读;“复制”会生成一份可编辑的副本。
Functions.collections.keys(array)
local rv = {}
for k,_ in pairs(array) do
table.insert(rv, k)
end
-- Sort the keys
table.sort(rv, function (lhs, rhs) return array[lhs] < array[rhs] end)
return rv