בדיקות חברות
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-GDScript של Coddy. שיעור 10 מתוך 78.
את/ה כבר בודק/ת חברות באמצעות in ו־not in: "cat" in pets מחפש איבר במערך, ו־"ell" in "hello" מחפש טקסט בתוך מחרוזת. שלושה מקרים נוספים עולים כל הזמן.
במילון, האופרטור dictionary in בודק רק את המפתחות. כדי לחפש ערך, בדוק את המערך שמוחזר על ידי values():
var grades := {"Alice": 85, "Bob": 90}
print("Alice" in grades)
print(90 in grades)
print(90 in grades.values())true
false
trueבדיקת חברות בודקת גם טיפוסים. טקסט שנקרא באמצעות OS.read_string_from_stdin() הוא מחרוזת, והמחרוזת "90" אינה המספר השלם 90:
var scores := [70, 90]
print("90" in scores)
print(int("90") in scores)false
trueמערך קבוע של ערכים מותרים עם in מחליף שרשרת ארוכה של or, והוא פועל גם בתנאי שמירה:
const DIRECTIONS = ["north", "south", "east", "west"]
var dir := "west"
match dir:
var d when d in DIRECTIONS:
print("Going ", d)
_:
print("You cannot go there")Going westאתגר
קללתוכנית יש מערך names עם שמות התלמידים בכיתה ומילון grades עם התלמידים שכבר קיבלו ציון. היא קוראת שם של תלמיד לתוך student וציון לתוך grade (כטקסט).
הדפיסו שלוש שורות:
NAME is in the class.אוNAME is not in the class., על ידי בדיקה שלnamesNAME has a grade.אוNAME has no grade., על ידי בדיקת המפתחות שלgradesSomeone scored GRADE.אוNobody scored GRADE., על ידי בדיקת הערכים שלgrades
החליפו את NAME ואת GRADE בקלט. עבור הקלטים Dana ו-85, הפלט הוא:
Dana is in the class.
Dana has no grade.
Someone scored 85.נסו בעצמכם
extends Node
func _ready():
var names := ["Alice", "Bob", "Charlie", "Dana"]
var grades := {"Alice": 85, "Bob": 90, "Charlie": 78}
var student := OS.read_string_from_stdin()
var grade := OS.read_string_from_stdin()
# הדפס את שלוש השורות
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
2קבלת החלטות מתקדמת
התאמה עם משתניםתנאי סף להתאמהתבניות מערכיםתבניות מילוניםבדיקות חברותסיכום – מנתח פקודות5אפליקציית ספר אנשי קשר
הצגת התפריטהוספת איש קשר8מנהל רשומות תלמידים
סקירת הפרויקטהוספת תלמידתרגלו בעצמכם: קומפיילר GDScript אונליין