Llamar como
Functions.collections.deepcopy(array, except, invert)
Regístrala como dependencia con el nombre Functions.collections.deepcopy (aceptar la sugerencia de autocompletado lo hace por ti) y luego llámala con ese nombre.
Qué hace
Crea una copia filtrada superficial, a pesar del nombre histórico deepcopy. Los valores anidados conservan sus identidades originales y no se copia la metatabla de origen. Por defecto excluye las claves que aparecen entre los valores de except; invert true incluye solo las claves indicadas. Una entrada nil devuelve nil.
Argumentos
| Nombre | Tipo | Qué hace |
|---|---|---|
array | table | nil | Tabla que se copiará superficialmente, o nil. |
except | table | nil | Colección opcional de valores de clave que seleccionan entradas; sus propias claves se ignoran. |
invert | boolean | nil | True incluye solo las entradas indicadas; false o nil excluyen las entradas indicadas. |
Retornos
| 1 | table | nil | Tabla nueva filtrada superficialmente, o nil para una entrada nil. |
|---|
Ediciones
Las funciones auxiliares integradas se registran en todas las ediciones. Lo que cambia es la API del juego que leen; donde falta alguna, la función auxiliar recurre a una alternativa o devuelve nil con un motivo.
No lee directamente ninguna API del juego.
Cómo la llama el addon
- Atacable (widget)
local unit = addon:Widget_UnitWidget(value, Functions.collections.deepcopy(addon.units, { "player", "pet" }), - Lanzamiento interrumpible (widget)
local unit = addon:Widget_UnitWidget(value, Functions.collections.deepcopy(addon.units, { "player", "pet" }), - Canalización interrumpible (widget)
local unit = addon:Widget_UnitWidget(value, Functions.collections.deepcopy(addon.units, { "player", "pet" }), - Clase (widget)
local unit = addon:Widget_UnitWidget(value, Functions.collections.deepcopy(addon.units, { "player", "pet" }), - Clasificación de la unidad (widget)
local unit = addon:Widget_UnitWidget(value, Functions.collections.deepcopy(addon.units, { "player", "pet" }), - Historial de acciones de combate (widget)
local unit = addon:Widget_UnitWidget(value, Functions.collections.deepcopy(addon.units, { "player", "pet", "target" }, true), - Tiempo del historial de acciones de combate (widget)
local unit = addon:Widget_UnitWidget(value, Functions.collections.deepcopy(addon.units, { "player", "pet", "target" }, true), - Tipo de criatura (widget)
local unit = addon:Widget_UnitWidget(value, Functions.collections.deepcopy(addon.units, { "player", "pet" }),
y 12 más: Hostil (widget), En grupo (widget), Inmune (widget), Es la misma que (widget), Marcado para JcJ (widget), Resistente (widget), Rol (widget), Huidizo (widget), Estadística del personaje (widget), Tiene beneficio robable (widget), Amenaza (widget), JcJ de la zona (widget)
Código fuente
Functions/collections.lua, línea 141. Solo lectura en el juego; Duplicar crea una copia editable.
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