אייפל (שפת תכנות) – הבדלי גרסאות

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