Referenz › Funktionsreferenz › Functions

Functions.collections.deepcopy

öffentlich

Aufruf als

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

Erfassen Sie sie als Abhängigkeit mit dem Namen Functions.collections.deepcopy (das Übernehmen der Vervollständigung erledigt das) und rufen Sie sie dann unter diesem Namen auf.

Was sie bewirkt

Trotz des historischen Namens deepcopy eine flache gefilterte Kopie erstellen. Verschachtelte Werte behalten ihre ursprüngliche Identität, und die Metatabelle der Quelle wird nicht kopiert. Standardmäßig werden Schlüssel ausgeschlossen, die unter den except-Werten aufgeführt sind; invert true schließt nur die aufgeführten Schlüssel ein. Eingabe nil ergibt nil.

Argumente

NameTypWas sie bewirkt
arraytable | nilFlach zu kopierende Tabelle oder nil.
excepttable | nilOptionale Sammlung von Schlüsselwerten zur Auswahl von Einträgen; ihre eigenen Schlüssel werden ignoriert.
invertboolean | nilTrue schließt nur aufgeführte Einträge ein; false oder nil schließt aufgeführte Einträge aus.

Rückgabewerte

1table | nilNeue flache gefilterte Tabelle oder nil bei Eingabe nil.

Editionen

Integrierte Hilfsfunktionen werden auf jeder Edition registriert. Unterschiedlich ist die Spiel-API, die sie lesen; fehlt eine, weicht die Hilfsfunktion aus oder gibt nil mit einem Grund zurück.

Sie liest keine Spiel-API direkt.

Wie das Addon sie aufruft

  • Angreifbar (widget)
    local unit = addon:Widget_UnitWidget(value, Functions.collections.deepcopy(addon.units, { "player", "pet" }),
  • Zauber unterbrechbar (widget)
    local unit = addon:Widget_UnitWidget(value, Functions.collections.deepcopy(addon.units, { "player", "pet" }),
  • Kanalisierung unterbrechbar (widget)
    local unit = addon:Widget_UnitWidget(value, Functions.collections.deepcopy(addon.units, { "player", "pet" }),
  • Klasse (widget)
    local unit = addon:Widget_UnitWidget(value, Functions.collections.deepcopy(addon.units, { "player", "pet" }),
  • Klassifizierung der Einheit (widget)
    local unit = addon:Widget_UnitWidget(value, Functions.collections.deepcopy(addon.units, { "player", "pet" }),
  • Kampfaktionsverlauf (widget)
    local unit = addon:Widget_UnitWidget(value, Functions.collections.deepcopy(addon.units, { "player", "pet", "target" }, true),
  • Zeit im Kampfaktionsverlauf (widget)
    local unit = addon:Widget_UnitWidget(value, Functions.collections.deepcopy(addon.units, { "player", "pet", "target" }, true),
  • Kreaturtyp (widget)
    local unit = addon:Widget_UnitWidget(value, Functions.collections.deepcopy(addon.units, { "player", "pet" }),

und 12 weitere: Feindselig (widget), In Gruppe (widget), Immun (widget), Ist identisch mit (widget), PvP-markiert (widget), Widerstandsfähig (widget), Rolle (widget), Flüchtet (widget), Charakterwert (widget), Hat stehlbaren Stärkungszauber (widget), Bedrohung (widget), Zonen-PvP (widget)

Quelle

Functions/collections.lua, Zeile 141. Im Spiel schreibgeschützt; Duplizieren erstellt eine bearbeitbare Kopie.

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

Zurück zu Funktionsreferenz