Référence › Référence des fonctions › Functions

Functions.collections.deepcopy

publique

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

NomTypeCe qu'elle fait
arraytable | nilTable à copier superficiellement, ou nil.
excepttable | nilCollection facultative dont les valeurs sont les clés à sélectionner ; ses propres clés sont ignorées.
invertboolean | niltrue n'inclut que les entrées listées ; false ou nil exclut les entrées listées.

Retours

1table | nilNouvelle 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

Retour à Référence des fonctions