레퍼런스 › 함수 레퍼런스 › Functions

Functions.collections.deepcopy

공개

호출 방법

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

Functions.collections.deepcopy(이)라는 이름의 의존성으로 기록한 뒤(자동 완성을 수락하면 이렇게 됩니다) 그 이름으로 호출하세요.

하는 일

과거 이름인 deepcopy와 달리 얕은 필터 복사본을 만듭니다. 중첩 값은 원래 식별 정보를 유지하며, 원본 메타테이블은 복사하지 않습니다. 기본적으로 except 값에 나열된 키를 제외하며, invert가 true면 나열된 키만 포함합니다. nil을 입력하면 nil을 반환합니다.

인수

이름유형하는 일
arraytable | nil얕게 복사할 테이블 또는 nil.
excepttable | nil항목을 선택하는 키 값의 선택적 모음. 모음 자체의 키는 무시합니다.
invertboolean | niltrue면 나열된 항목만 포함하고, false나 nil이면 나열된 항목을 제외합니다.

반환값

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

함수 레퍼런스(으)로 돌아가기