kullanımdan kaldırmak

Verimli birleştirme işlemlerini destekleyen ve tanımlanmış bir geçiş sırasına sahip özel bir veri yapısıdır. Kurallarda ve yönlerde geçişli bağımlılıklardan veri toplamak için yaygın olarak kullanılır. Daha fazla bilgi için burayı inceleyin.

Bir depset'in öğeleri karma oluşturulabilir ve tümü aynı türde olmalıdır (yerleşik type(x) işleviyle tanımlandığı gibi). Ancak depset'ler yalnızca karma kümeler değildir ve hızlı üyelik testlerini desteklemez. Genel bir küme veri türüne ihtiyacınız varsa temel Starlark küme türünü (Bazel 8.1'den beri kullanılabilir) kullanın. .bzl dosyanızın eski Bazel sürümleriyle uyumlu olması gerekiyorsa tüm anahtarların True ile eşlendiği bir sözlük kullanarak küme simülasyonu yapabilirsiniz.

Doğruluk açısından test edildiğinde (ör. if d: gibi bir Boole bağlamında kullanıldığında, burada d bir depset'tir) bir depset yalnızca boş değilse Doğru olur. Bu kontrol, O(1) işlemidir.

Depset'ler değiştirilemez. Yapıcı işlevleri kullanılarak oluşturulmalı ve transitive bağımsız değişkeni aracılığıyla diğer depset'lerle birleştirilmeli veya artırılmalıdır.

order parametresi, depset'in yinelenebilir bir öğeye dönüştürülmesi için yapılan geçiş türünü belirler. Dört olası değer vardır:

  • "default" (eski adıyla "stable"): Sıra belirtilmemiştir (ancak deterministiktir).
  • "postorder" (eski adıyla "compile"): Soldan sağa sıralama sonrası. Bu, tüm alt öğeleri en soldan başlayarak yinelemeli olarak, ardından doğrudan öğeleri en soldan başlayarak yinelemeli olarak geçer.
  • "preorder" (eski adıyla "naive_link"): Soldan sağa ön sipariş. Bu, doğrudan öğeleri en soldan başlayarak, ardından alt öğeleri en soldan başlayarak yinelemeli olarak geçer.
  • "topological" (eski adıyla "link"): Kökten yapraklara doğru topolojik sıralama. Soldan sağa doğru bir garanti yoktur.

İki bağımlılık kümesi yalnızca her ikisi de aynı sıraya sahipse veya birinde "default" sırası varsa birleştirilebilir. İkinci durumda, ortaya çıkan bağımlılık kümesinin sırası diğerinin sırasıyla aynı olur.

Depset'ler yinelenen değerler içerebilir ancak bunlar yineleme sırasında (to_list() kullanılarak) bastırılır. Yinelenen değerler, sıralama semantiğini etkileyebilir.

Üyeler

to_list

list depset.to_list()

Çiftleri kaldırılmış olarak, depset'in geçiş sırasındaki öğelerin listesini döndürür. Depshete birden fazla kez eklenen öğeler için sıranın belirtilmediğini (ancak deterministik olduğunu) unutmayın. "default" sıralı bağımlılık kümeleri ve sıralaması üst bağımlılık kümesinden farklı olan alt bağımlılık kümelerinin öğeleri için de sıra belirtilmez. Liste bir kopyadır. Listenin değiştirilmesi, depset'i etkilemez ve bunun tersi de geçerlidir.