参考 › 函数参考 › Functions

Functions.collections.keys

公共

调用方式

Functions.collections.keys(array)

将其记录为名为 Functions.collections.keys 的依赖项(接受自动补全即可完成),然后按该名称调用。

作用

收集表的键,并使用 Lua 的小于比较按其对应的值排序。这是按值排序而不是按键名排序;值相等时键的顺序不确定。

参数

名称类型作用
arraytable其值之间必须可以相互比较的表。

返回值

1table按对应值排序的键的密集数组。

版本

内置辅助函数在每个版本上都会注册。不同的是它们读取的游戏 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

返回函数参考