參考資料 › 函式參考 › 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

返回函式參考