דלפי שפת תכנות היא דוגמה לשפה שהוקלדה בצורה חזקה. משמעות הדבר היא שעל כל המשתנים להיות מסוג כלשהו. סוג הוא בעצם שם לסוג של נתונים. כאשר אנו מצהירים על משתנה, עלינו לציין את סוגו, הקובע את מערך הערכים שהמשתנה יכול להחזיק ואת הפעולות שניתן לבצע עליו.
רבים מסוגי הנתונים המובנים של דלפי, כמו מספר שלם או מחרוזת, ניתן לשכלל או לשלב ליצירת סוגי נתונים חדשים. במאמר זה נראה כיצד ליצור סוגי נתונים מסודרים בהתאמה אישית דלפי.
סוגים רגילים
המאפיינים המגדירים של סוגי נתונים קבועים הם: עליהם להיות מורכבים ממספר סופי של אלמנטים ויש להזמין אותם בדרך כלשהי.
הדוגמאות הנפוצות ביותר לסוגי נתונים קבועים הם כל סוגי המספרים השלמים כמו גם Char ו- בוליאני סוג. ליתר דיוק, ל- Object Pascal 12 סוגים קבועים מוגדרים מראש: מספר שלם, קיצור, סמולנט, לונגינט, בייט, Word, קרדינל, בוליאני, ByteBool, WordBool, LongBool ו- Char. ישנן שתי קבוצות נוספות של סוגים נקודתיים המוגדרים על ידי המשתמש: סוגים ספורים וסוגי משנה.
בכל סוגים מסודרים, צריך להיות הגיוני לנוע אחורה או קדימה לאלמנט הבא. לדוגמה, סוגים אמיתיים אינם מסודרים מכיוון שזוז לאחור או קדימה אינו הגיוני. השאלה "מה האמיתי הבא אחרי 2.5?" הוא חסר משמעות.
מכיוון שבהגדרה, לכל ערך פרט לראשון יש קודמו ייחודי ולכל ערך פרט לאחד יש יורש ייחודי, כמה מוגדרים מראש פונקציות משמשים בעבודה עם סוגים מסודרים:
פונקציה | השפעה |
אור (X) | נותן את אינדקס האלמנט |
Pred (X) | עובר לאלמנט המופיע לפני X בסוג |
הצלחה (X) | עובר לאלמנט המופיע אחרי X בסוג |
דצמבר (X; n) | מעביר אלמנטים n אחורה (אם n מושמט מזיז אלמנט 1 אחורה) |
Inc (X; n) | מעביר אלמנטים n קדימה (אם n מושמט מזיז אלמנט 1 קדימה) |
נמוך (X) | מחזירה את הערך הנמוך ביותר בטווח של נתונים נתונים קבועים X |
גבוה (X) | מחזירה את הערך הגבוה ביותר בטווח של נתונים נתונים מסדיים X |
לדוגמה, High (Byte) מחזיר 255 מכיוון שהערך הגבוה ביותר של Type Byte הוא 255, ו- Succ (2) מחזיר 3 מכיוון ש 3 הוא היורש של 2.
הערה: אם ננסה להשתמש ב- Succ כאשר באלמנט האחרון דלפי תייצר חריגת זמן ריצה אם בדיקת הטווח פועלת.
סוג ספירה של דלפי
הדרך הקלה ביותר ליצור דוגמא חדשה מסוג טיפולי היא פשוט רשימת חבורה של אלמנטים בסדר מסוים. לערכים אין משמעות אינהרנטית, וסדירותם היא בהתאם לרצף בו מופיעים המזהים. במילים אחרות, ספירה היא רשימת ערכים.
סוג TWeekDays = (שני, שלישי, רביעי, חמישי, שישי, שבת, ראשון);
לאחר שאנו מגדירים סוג נתונים המונה, אנו יכולים להכריז על משתנים שהם מסוג זה:
var SomeDay: TWeekDays;
המטרה העיקרית של סוג נתונים המונה היא להבהיר אילו נתונים שלך תכנית יתמרן. סוג מונה הוא באמת רק דרך מקצרת להקצות ערכים רציפים לקבועים. בהתחשב בהצהרות אלה, יום שלישי הוא קבוע מסוגו TWeekDays.
דלפי מאפשרת לנו לעבוד עם האלמנטים בסגנון ספור באמצעות אינדקס שמגיע מהסדר בו נרשמו. בדוגמה הקודמת, יום שני ב- TWeekDays בהצהרת הסוגים יש את המדד 0, ביום שלישי יש את המדד 1 וכן הלאה. הפונקציות הרשומות בטבלה שלפנינו, למשל, השתמשו ב- Succ (יום שישי) כדי "ללכת" לשבת.
עכשיו אנחנו יכולים לנסות משהו כמו:
ל SomeDay: = יום שני ל יום ראשון לעשותאם SomeDay = יום שלישי לאחר מכן ShowMessage ('יום שלישי זה!');
ספריית הרכיבים החזותיים של דלפי משתמשת בסוגים ספורים במקומות רבים. לדוגמה, מיקום הטופס מוגדר כך:
TPosition = (poDesigned, poDefault, poDefaultPosOnly, poDefaultSizeOnly, poScreenCenter);
אנו משתמשים במיקום (דרך מפקח האובייקט) כדי להשיג או להגדיר את הגודל והמיקום של ה- טופס.
סוגי משנה
במילים פשוטות, סוג משנה הוא מייצג תת-ערכה של ערכים בסוג רגיל אחר. באופן כללי, אנו יכולים להגדיר כל סוג משנה באמצעות התחלה עם כל סוג מסודר (כולל סוג המונה שהוגדר בעבר) ושימוש בנקודה כפולה:
סוג TWorkDays = יום שני.. יום שישי;
כאן TWorkDays כולל את הערכים שני, שלישי, רביעי, חמישי ושישי.
זה הכל - עכשיו נספור!