תנאי סף להתאמה
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-GDScript של Coddy. שיעור 7 מתוך 78.
תנאי סף מוסיף תנאי לתבנית. כתוב when ותנאי אחרי התבנית: התבנית מתאימה רק אם הערך תואם לתבנית וגם התנאי הוא true. תנאי סף קיימים מאז Godot 4.4.
var hp := 15
match hp:
0:
print("Defeated")
var h when h < 20:
print("Low health: ", h)
_:
print("Healthy")Low health: 15ב-GDScript אין תבניות טווח כגון 1..10. תבנית קישור עם תנאי סינון עושה את העבודה: var h when h < 20: מתאימה לכל ערך שמתחת ל-20 ונותנת לו את השם h.
כאשר תנאי השמירה הוא false, הפקודה match ממשיכה לתבנית הבאה. התבניות נבדקות מלמעלה למטה, ולכן הסדר קובע איזה בלוק יפעל:
var temp := 32
match temp:
var t when t <= 0:
print("Freezing")
var t when t < 15:
print("Cold")
var t when t < 30:
print("Warm")
_:
print("Hot")Hotהתבנית השנייה לא זקוקה ל־t > 0: טמפרטורה של 0 או פחות כבר התאימה לראשונה. אפשר להשתמש בתנאי כלשהו כשומר, עם משתנים אחרים ועם and או or, והוא מתאים לכל תבנית: 5 when hard_mode: מתאים ל־5 רק כאשר hard_mode הוא true.
אתגר
קלהתוכנית קוראת גיל כמספר שלם אל age. השתמשו במשפט match עם תנאי שמירה כדי להדפיס את קבוצת הגיל:
0עד12:Child13עד19:Teenager20עד64:Adult65עד120:Senior- כל מספר אחר:
Invalid age
כל טווח כולל את שני הקצוות. עבור הקלט 15, הפלט הוא:
Teenagerנסו בעצמכם
extends Node
func _ready():
var age := int(OS.read_string_from_stdin())
# הדפס את קבוצת הגיל באמצעות match ותנאי שמירה
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
2קבלת החלטות מתקדמת
התאמה עם משתניםתנאי סף להתאמהתבניות מערכיםתבניות מילוניםבדיקות חברותסיכום – מנתח פקודות5אפליקציית ספר אנשי קשר
הצגת התפריטהוספת איש קשר8מנהל רשומות תלמידים
סקירת הפרויקטהוספת תלמידתרגלו בעצמכם: קומפיילר GDScript אונליין