Riferimento › Riferimento delle funzioni › Functions

Functions.collections.deepcopy

pubblica

Chiamala come

Functions.collections.deepcopy(array, except, invert)

Registrala come dipendenza chiamata Functions.collections.deepcopy (accettare il completamento lo fa per te), poi chiamala con quel nome.

Cosa fa

Crea una copia superficiale filtrata, nonostante il nome storico deepcopy. I valori annidati mantengono le loro identità originali e la metatabella di origine non viene copiata. Per impostazione predefinita esclude le chiavi elencate tra i valori di except; con invert true include solo le chiavi elencate. Un input nil restituisce nil.

Argomenti

NomeTipoCosa fa
arraytable | nilTabella da copiare in modo superficiale, oppure nil.
excepttable | nilRaccolta facoltativa di valori chiave che selezionano le voci; le sue chiavi vengono ignorate.
invertboolean | nilTrue include solo le voci elencate; false o nil esclude le voci elencate.

Valori restituiti

1table | nilNuova tabella superficiale filtrata, oppure nil per un input nil.

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.

Come la chiama l'addon

  • Attaccabile (widget)
    local unit = addon:Widget_UnitWidget(value, Functions.collections.deepcopy(addon.units, { "player", "pet" }),
  • Lancio interrompibile (widget)
    local unit = addon:Widget_UnitWidget(value, Functions.collections.deepcopy(addon.units, { "player", "pet" }),
  • Incanalamento interrompibile (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" }),
  • Classificazione dell'unità (widget)
    local unit = addon:Widget_UnitWidget(value, Functions.collections.deepcopy(addon.units, { "player", "pet" }),
  • Cronologia delle azioni di combattimento (widget)
    local unit = addon:Widget_UnitWidget(value, Functions.collections.deepcopy(addon.units, { "player", "pet", "target" }, true),
  • Tempo nella cronologia delle azioni di combattimento (widget)
    local unit = addon:Widget_UnitWidget(value, Functions.collections.deepcopy(addon.units, { "player", "pet", "target" }, true),
  • Tipo di creatura (widget)
    local unit = addon:Widget_UnitWidget(value, Functions.collections.deepcopy(addon.units, { "player", "pet" }),

e altri 12: Ostile (widget), In gruppo (widget), Immune (widget), È uguale a (widget), Contrassegnato per il PvP (widget), Resistente (widget), Ruolo (widget), In fuga (widget), Statistica del personaggio (widget), Ha un effetto benefico rubabile (widget), Minaccia (widget), PvP della zona (widget)

Sorgente

Functions/collections.lua, riga 141. Nel gioco è in sola lettura; Duplica crea una copia modificabile.

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

Torna a Riferimento delle funzioni