Chiamala come
Functions.collections.spairs(t, order)
Registrala come dipendenza chiamata Functions.collections.spairs (accettare il completamento lo fa per te), poi chiamala con quel nome.
Cosa fa
Crea un iteratore su un'istantanea ordinata delle chiavi della tabella. L'ordinamento predefinito confronta le chiavi; una callback di ordinamento personalizzata riceve la tabella originale e due chiavi. I valori vengono letti dalla tabella originale quando ciascuna chiave viene restituita. L'iteratore precedente termina quando la successiva chiave acquisita è nil o false.
Argomenti
| Nome | Tipo | Cosa fa |
|---|---|---|
t | table | Tabella da attraversare; le chiavi devono essere confrontabili tra loro quando non viene fornito un ordinamento personalizzato. |
order | function | nil | Callback di ordinamento facoltativa, chiamata come order(t, leftKey, rightKey). |
Valori restituiti
| 1 | function | Iteratore che restituisce una chiave acquisita e il valore attuale nella tabella, oppure nessun valore quando è esaurito. |
|---|
Edizioni
Le funzioni di supporto integrate sono registrate su ogni edizione. Ciò che cambia è l'API di gioco che leggono; dove ne manca una, la funzione di supporto ripiega su un'alternativa o restituisce nil con un motivo.
Non legge direttamente alcuna API di gioco.
Esempio
local stacks = { Frost = 2, Arcane = 1, Fire = 3 }
local byCount = function(t, a, b) return t[a] > t[b] end
for school in Functions.collections.spairs(stacks, byCount) do
return school == "Fire"
end
return falseSorgente
Functions/collections.lua, riga 38. Nel gioco è in sola lettura; Duplica crea una copia modificabile.
Functions.collections.spairs(t, order)
-- collect the keys
local keys = {}
for k in pairs(t) do keys[#keys+1] = k end
-- if order function given, sort by it by passing the table and keys a, b,
-- otherwise just sort the keys
if order then
table.sort(keys, function(a,b) return order(t, a, b) end)
else
table.sort(keys)
end
-- return the iterator function
local i = 0
return function()
i = i + 1
if keys[i] then
return keys[i], t[keys[i]]
end
end