BazelCon 2022 מגיע בין 16 ל-17 בנובמבר לניו יורק באינטרנט. הירשמו עוד היום!
חדש: אנחנו מזמינים אותך להצטרף אלינו ליום הקהילה ב-15 בנובמבר! פרטים ורישום.

Depset

קל לארגן דפים בעזרת אוספים אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.

מבנה נתונים מיוחד שתומך בפעולות מיזוג יעילות וכולל סדר מעבר מוגדר. בדרך כלל משמש לצבירת נתונים מקשרי תלות חולפים בכללים ובהיבטים. מידע נוסף זמין כאן.

האלמנטים של מערך הנתונים צריכים להיות מגובבים (hashed) וכל הסוגים מאותו סוג (כפי שהם מוגדרים על ידי הפונקציה המובנית (x)) אם אתם צריכים סוג נתונים כללי, אפשר לדמות סוג כזה באמצעות מילון שבו כל המפתחות ממופים אל True.

אי אפשר לפרסם כלום. יש ליצור אותן באמצעות פונקציה לבנייה ולמזג אותן עם תוספים אחרים באמצעות הארגומנט transitive.

הפרמטר order קובע את סוג המעבר שבוצע כדי להמיר את המפלסה לאיטרציה. יש ארבעה ערכים אפשריים:

  • "default" (לשעבר "stable"): לא צוינה הזמנה (אבל דטרמיניסטית).
  • "postorder" (לשעבר "compile"): הזמנה מראש משמאל לימין. באופן מדויק, הם חוצים את מחזור החיים של כל הצאצאים מהראשונה, אחר כך של הרכיבים הישירים הקדומים ביותר.
  • "preorder" (לשעבר "naive_link"): הזמנה מראש משמאל לימין. באופן מדויק, הם חוצים את האלמנטים הישירים מהראשונה, ולאחר מכן חוצים את הרגליים רק את הצאצאים הימניים ביותר.
  • "topological" (לשעבר "link"): סדר טופולוגי מהשורש עד לעלים. אין ערובה משמאל לימין.

ניתן למזג שני מזהי הסרה רק אם לשני ההזמנות יש אותו סדר, או לאחד מהם יש הזמנה אחת ("default"). במקרה השני, ההוראה שמתקבלת תהיה זהה לזו של הסדר השני.

תצוגות שונות עשויות להכיל ערכים כפולים, אבל הערכים האלה יושבתו כשמבצעים איטרציה (באמצעות to_list()). כפילויות עשויות להפריע לסמנטיקה של הסדר.

חברי מועדון

to_list

list depset.to_list()

מחזירה רשימה של הרכיבים, ללא כפילויות, בסדר המעבר הדו-צדדי. שימו לב, לא צוינה הזמנה (אבל דטרמיניסטית) באלמנטים שנוספו יותר מפעם אחת. בנוסף, לא צוינה הזמנה למאגרי מסמכים שהוזמנו על ידי "default", ולרכיבים של מנופי ילדים שהסדר שלהם שונה מזה של תיבת הדו-שיח של האב. הרשימה היא עותק. שינוי שלה לא ישפיע על ההפסקה, ולהיפך.