Appel
Functions.collections.deepcopy(array, except, invert)
Enregistrez-la comme dépendance nommée Functions.collections.deepcopy (accepter la complétion le fait pour vous), puis appelez-la sous ce nom.
Ce qu'elle fait
Crée une copie superficielle filtrée, malgré le nom historique deepcopy. Les valeurs imbriquées conservent leur identité d'origine et la métatable source n'est pas copiée. Par défaut, exclut les clés figurant parmi les valeurs de except ; avec invert à true, seules les clés listées sont incluses. Une entrée nil renvoie nil.
Arguments
| Nom | Type | Ce qu'elle fait |
|---|---|---|
array | table | nil | Table à copier superficiellement, ou nil. |
except | table | nil | Collection facultative dont les valeurs sont les clés à sélectionner ; ses propres clés sont ignorées. |
invert | boolean | nil | true n'inclut que les entrées listées ; false ou nil exclut les entrées listées. |
Retours
| 1 | table | nil | Nouvelle table superficielle filtrée, ou nil pour une entrée nil. |
|---|
Éditions
Les fonctions utilitaires intégrées sont enregistrées sur toutes les éditions. Ce qui diffère, c'est l'API du jeu qu'elles lisent ; quand l'une manque, la fonction utilitaire se rabat sur une alternative ou renvoie nil avec une raison.
Elle ne lit directement aucune API du jeu.
Comment l'addon l'appelle
- Attaquable (widget)
local unit = addon:Widget_UnitWidget(value, Functions.collections.deepcopy(addon.units, { "player", "pet" }), - Incantation interruptible (widget)
local unit = addon:Widget_UnitWidget(value, Functions.collections.deepcopy(addon.units, { "player", "pet" }), - Canalisation interruptible (widget)
local unit = addon:Widget_UnitWidget(value, Functions.collections.deepcopy(addon.units, { "player", "pet" }), - Classe (widget)
local unit = addon:Widget_UnitWidget(value, Functions.collections.deepcopy(addon.units, { "player", "pet" }), - Classification de l'unité (widget)
local unit = addon:Widget_UnitWidget(value, Functions.collections.deepcopy(addon.units, { "player", "pet" }), - Historique des actions de combat (widget)
local unit = addon:Widget_UnitWidget(value, Functions.collections.deepcopy(addon.units, { "player", "pet", "target" }, true), - Historique des actions de combat (temps) (widget)
local unit = addon:Widget_UnitWidget(value, Functions.collections.deepcopy(addon.units, { "player", "pet", "target" }, true), - Type de créature (widget)
local unit = addon:Widget_UnitWidget(value, Functions.collections.deepcopy(addon.units, { "player", "pet" }),
et 12 autres: Hostile (widget), En groupe (widget), Insensible (widget), Est identique à (widget), Marqué JcJ (widget), Résistant (widget), Rôle (widget), Fuyard (widget), Caractéristique du personnage (widget), A une amélioration volable (widget), Menace (widget), Zone JcJ (widget)
Source
Functions/collections.lua, ligne 141. En lecture seule dans le jeu ; Dupliquer crée une copie modifiable.
Functions.collections.deepcopy(array, except, invert)
if array == nil then
return nil
end
if invert == nil then
invert = false
end
local rv = {}
for k,v in pairs(array) do
local skip = invert
if except ~= nil then
for _,v2 in pairs(except) do
if (k == v2) then
skip = not invert
break
end
end
end
if not skip then
rv[k] = v
end
end
return rv