Menu
Coddy logo textTech

דפוס הקבוצה ב-Go

חלק מהיחידה לוגיקה וזרימת התוכנית במסלול ה-GO של Coddy. שיעור 31 מתוך 68.

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

האידיומה של קבוצות ב-Go משתמשת במפה שבה חשובים לך רק המפתחות, לא הערכים. מכיוון שצריך לאחסן משהו בתור הערך, מתכנתי Go משתמשים במבנה ריק struct{}. הנה התבנית הבסיסית:

var mySet map[string]struct{}

המבנה הריק struct{} מיוחד כי הוא תופס אפס בתים בזיכרון. כך הוא מושלם לקבוצות שבהן צריך רק לעקוב אחר השאלה אם משהו קיים או לא, בלי לבזבז זיכרון על ערכים חסרי משמעות.

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

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

נסו בעצמכם

השיעור הזה לא כולל אתגר קוד.

quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה לוגיקה וזרימת התוכנית

תרגלו בעצמכם: קומפיילר Go אונליין