מבנים
סקירה כללית
מבני השפה Wave הם אלמנט תחבירי מרכזי להצהרה על טיפוסי נתונים מותאמים אישית. מבנה מאפשר חיבור ערכים מסוגים שונים ליחידה לוגית אחת, ובכך מאפשר דגם מורכב של מבנים בצורה ברורה ובטוחה.
מבני Wave פועלים כטיפוסי ערכים. כל שדה חייב להכיל טיפוס מוגדר, ובזמן יצירת מופע כל השדות חייבים להיות מאותחלים. חוקים אלו מבטיחים שמצב המבנה תמיד יהיה מושלם וניתן לחיזוי.
תחביר הצהרת מבנים
מבנה מוכרז בעזרת מילת המפתח struct.
שמות מבנים כתובים בתבנית פסקל (PascalCase) ומבנה יכול להכיל שדה אחד או יותר.
השדות מוכרזים בפורמט שם: סוג;, ויש צורך בנקודה פסיק אחרי כל הכרזה של שדה.
struct Box {
size: i32;
weight: f32;
}
סדר השדות שנכתבים בהצהרת מבנה זהה לסדר האחסון בזיכרון. בתוך מבנה ניתן לכלול רק הצהרות על שדות, ולא ניתן לכלול פונקציות או שיטות. לוגיקת הפעולה מוגדרת מחוץ למבנה בצורה נפרדת.
תחביר יצירת מבנים
מבנה נוצר באופן ליטרלי על ידי שימוש בשם המבנה.
ליטרל של מבנה נכתב בצורה StructName { שם שדה: ערך; ... נכתב בצורה }.
var b: Box = Box {
size: 42;
weight: 10.5;
};
בעת יצירת מבנה כל השדות שהוגדרו חייבים להיות מאותחלים ובמקרה של השמטה, תתרחש שגיאת קומפילציה.
בעת האתחול, סדר כתיבת השדות אינו חייב להתאים לסדר הכרזת המבנה, אך סוג הערך המועבר לכל שדה חייב להתאים במדויק לסוג שהוגדר במבנה. ב-Wave לא מתאפשרת המרה עלומה של סוגים בתהליך אתחול שדות מבנה.
