디셋

효율적인 병합 작업을 지원하고 순회 순서가 정의된 특화된 데이터 구조입니다. 일반적으로 규칙 및 관점에서 전이 종속 항목으로부터 데이터를 축적하는 데 사용됩니다. 자세한 내용은 여기를 참고하세요.

depset의 요소는 해시가 가능하고 동일한 유형 (기본 제공 type(x) 함수에서 정의됨)이어야 합니다. 그러나 depset은 단순히 해시 세트가 아니며 빠른 멤버십 테스트를 지원하지 않습니다. 일반적 세트 데이터 유형이 필요한 경우 모든 키가 True에 매핑되는 사전을 사용하여 데이터 유형을 시뮬레이션할 수 있습니다.

배포판은 변경할 수 없습니다. 생성자 함수를 사용하여 만들고 transitive 인수를 통해 다른 depset과 병합하거나 보강해야 합니다.

order 매개변수는 depset을 반복 가능 함수로 변환하기 위해 실행되는 순회 유형을 결정합니다. 다음과 같은 4개의 값을 사용할 수 있습니다.

  • "default"(이전의 "stable"): 순서가 지정되지 않지만 확정적입니다.
  • "postorder" (이전의 "compile"): 순서 지정 후 왼쪽에서 오른쪽으로 정확하게 말하면 왼쪽부터 모든 하위 요소를 재귀적으로 순회한 다음 가장 왼쪽부터 직접 요소를 순회합니다.
  • "preorder" (이전의 "naive_link"): 왼쪽에서 오른쪽으로 진행되는 선주문입니다. 정확히 말하면 왼쪽부터 직접 요소를 순회한 다음 가장 왼쪽부터 가장 왼쪽 하위 요소를 반복적으로 순회합니다.
  • "topological" (이전의 "link"): 루트에서 잎으로 향하는 위상 순서입니다. 왼쪽에서 오른쪽을 보장하지 않습니다.

두 depset의 순서가 같거나 둘 중 하나의 순서가 "default"인 경우에만 두 확장 세트를 병합할 수 있습니다. 후자의 경우 결과 종속 항목의 순서는 다른 종속 항목의 순서와 동일합니다.

종속 항목에 중복 값이 포함될 수 있지만 to_list()를 사용하여 반복할 때 중복 값이 표시되지 않습니다. 중복은 정렬 시맨틱스를 방해할 수 있습니다.

구성원

to_list

list depset.to_list()

중복되지 않은 요소 목록을 종속 항목의 순회 순서로 반환합니다. depset에 두 번 이상 추가된 요소의 순서는 지정되지 않지만 확정적입니다. 또한 "default"-ordered depset 및 상위 depset과 순서가 다른 하위 depset 요소에 대해서는 순서가 지정되지 않습니다. 이 목록은 사본입니다. 이 목록을 수정해도 배포에는 영향을 미치지 않으며 반대의 경우도 마찬가지입니다.