호출 방법
Functions.collections.deepcopy(array, except, invert)
Functions.collections.deepcopy(이)라는 이름의 의존성으로 기록한 뒤(자동 완성을 수락하면 이렇게 됩니다) 그 이름으로 호출하세요.
하는 일
과거 이름인 deepcopy와 달리 얕은 필터 복사본을 만듭니다. 중첩 값은 원래 식별 정보를 유지하며, 원본 메타테이블은 복사하지 않습니다. 기본적으로 except 값에 나열된 키를 제외하며, invert가 true면 나열된 키만 포함합니다. nil을 입력하면 nil을 반환합니다.
인수
| 이름 | 유형 | 하는 일 |
|---|---|---|
array | table | nil | 얕게 복사할 테이블 또는 nil. |
except | table | nil | 항목을 선택하는 키 값의 선택적 모음. 모음 자체의 키는 무시합니다. |
invert | boolean | nil | true면 나열된 항목만 포함하고, false나 nil이면 나열된 항목을 제외합니다. |
반환값
| 1 | table | nil | 새 얕은 필터 테이블. 입력이 nil이면 nil. |
|---|
버전
기본 제공 도우미는 모든 버전에 등록됩니다. 다른 점은 읽는 게임 API이며, API가 없으면 도우미는 대체 동작을 하거나 이유와 함께 nil을 반환합니다.
게임 API를 직접 읽지 않습니다.
애드온에서 호출하는 방식
- 공격 가능 (widget)
local unit = addon:Widget_UnitWidget(value, Functions.collections.deepcopy(addon.units, { "player", "pet" }), - 시전 차단 가능 (widget)
local unit = addon:Widget_UnitWidget(value, Functions.collections.deepcopy(addon.units, { "player", "pet" }), - 정신 집중 차단 가능 (widget)
local unit = addon:Widget_UnitWidget(value, Functions.collections.deepcopy(addon.units, { "player", "pet" }), - 직업 (widget)
local unit = addon:Widget_UnitWidget(value, Functions.collections.deepcopy(addon.units, { "player", "pet" }), - 유닛 등급 (widget)
local unit = addon:Widget_UnitWidget(value, Functions.collections.deepcopy(addon.units, { "player", "pet" }), - 전투 행동 기록 (widget)
local unit = addon:Widget_UnitWidget(value, Functions.collections.deepcopy(addon.units, { "player", "pet", "target" }, true), - 전투 행동 기록 시간 (widget)
local unit = addon:Widget_UnitWidget(value, Functions.collections.deepcopy(addon.units, { "player", "pet", "target" }, true), - 생물 유형 (widget)
local unit = addon:Widget_UnitWidget(value, Functions.collections.deepcopy(addon.units, { "player", "pet" }),
외 12개: 적대적 (widget), 그룹 중 (widget), 면역 (widget), 같음 (widget), PvP 활성화 (widget), 저항함 (widget), 역할 (widget), 실행기 (widget), 캐릭터 능력치 (widget), 훔칠 수 있는 강화 효과 있음 (widget), 위협 수준 (widget), 지역 PvP (widget)
소스
Functions/collections.lua, 141번째 줄. 게임에서는 읽기 전용이며, 복제하면 편집 가능한 사본이 생깁니다.
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