אייפל (שפת תכנות) – הבדלי גרסאות
תוכן שנמחק תוכן שנוסף
מ בוט החלפות: ועוד. |
מ החלפת תג source לתג syntaxhighlight* |
||
שורה 40:
==== דוגמה ל design by contract class DATE ====
<
create
make feature {NONE}
שורה 78:
valid_hour: 0 <= hour and hour <= 23
end
</
===Open Closed principle===
שורה 127:
הגדרת משתנים נעשית בדרך דומה לשפת [[פסקל (שפת תכנות)|פסקל]]: שם המשתנה נכתב מצד שמאל לאחריו נקודתיים ושם הטיפוס.
<
flag: BOOLEAN
שורה 139:
c: CHARACTER
</syntaxhighlight>
=== אובייקטים ===
שורה 145:
נקראים גם REFERENCE ומכילים [[אובייקט (מדעי המחשב)|אובייקט]]ים או מערכים. לדוגמה אובייקט שאני הגדרתי (אלא אם כן הגדרתי במפורש EXPEND):
<
=== ערכים דפולטיבים ===
שורה 170:
הצהרה:
<
numbers: ARRAY[INTEGER]</
יצירה(מערך מ1 עד 100):
<
=== רשומה ===
שורה 181:
נקרא tuples מקבילה של struct או class ללא פונקציות רק data members:
<
t: TUPLE [name: STRING; weight: REAL; date: DATE]
</
["Brigitte", 3.5, Last_night]
</syntaxhighlight>
גישה: <
t.weight := t.weight + 0.5
</syntaxhighlight>
=== אופרטורים ===
שורה 225:
'''end''' סוף תנאי
<
if(num>10) then
שורה 237:
end
</syntaxhighlight>
=== LOOP ===
שורה 245:
'''loop/end''' גוף הלולאה
<
from I:=0 until I>10 loop
שורה 252:
end
</syntaxhighlight>
===פונקציות ופרוצדורות===
שורה 273:
<
description : "targil5 application root class"
date : "$Date$"
שורה 298:
end
</
== מנגנון ניהול חריגות ==
לשפה יש מנגנון מאוד יעיל של ניהול חריגות שעובד בצורה כזאת שהוא משתמש בבדיקת ה-post condition שלו, ובמקרה שזה לא עובר, הוא עושה את הפונקציה מחדש בשביל לנסות שוב לפי מספר הניסיונות שהוגדרו לו מראש.{{ש}}לדוגמה: <
connect_to_server (server: SOCKET) -- Connect to a server or give up after 10 attempts.
require
שורה 317:
end
end
</syntaxhighlight>
==אפשרויות שונות בשפה==
|