תבניות מערכים
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-GDScript של Coddy. שיעור 8 מתוך 78.
תבנית מערך נכתבת כמו מילולית של מערך. היא תואמת למערך באותו גודל, שהאיברים שלו תואמים זה לזה אחד-לאחד. כל איבר בתבנית יכול להיות מילולית, _ או קישור:
var point := [0, 7]
match point:
[0, 0]:
print("Origin")
[0, var y]:
print("On the y-axis at ", y)
[var x, var y]:
print("Point ", x, ", ", y)On the y-axis at 7הגודל חייב להיות זהה: [var x, var y] לא תואם ל־[1, 2, 3]. שים .. בתור האיבר האחרון כדי לאפשר כל מספר של איברים נוספים (כולל אפס), וכתוב [] עבור מערך ריק:
var cmd := ["give", "sword", "Ana"]
match cmd:
[]:
print("Nothing typed")
["give", var item, ..]:
print("Giving ", item)Giving swordתנאי שמירה עובדים גם עם תבניות של מערכים: [var a, var b] when a == b: מתאים לשני איברים שווים.
תבניות של מערכים מתאימות רק לסוג Array. הערך PackedStringArray שמוחזר על ידי split() לעולם לא מתאים להן. אחסן את התוצאה במשתנה שהוצהר מסוג Array, וכך היא תומר:
var words: Array = "go north".split(" ")
match words:
["go", var dir]:
print("Heading ", dir)Heading northאתגר
קלהתוכנית קוראת נקודה הכתובה בתור x,y ושומרת אותה במערך point כשני מספרים שלמים (כבר כתוב). השתמשו במשפט match עם תבניות מערך כדי להדפיס היכן נמצאת הנקודה, לפי הכלל הראשון שמתאים:
- שניהם
0:Origin xהוא0:On the y-axis at y=ואחריוyyהוא0:On the x-axis at x=ואחריוxxו-yשווים:On the diagonal atואחריו הערך- כל מקרה אחר:
Point at (x, y)עם שני הערכים
עבור הקלט 0,5, הפלט הוא:
On the y-axis at y=5עבור הקלט 2,7, הפלט הוא:
Point at (2, 7)נסו בעצמכם
extends Node
func _ready():
var parts := OS.read_string_from_stdin().split(",")
var point := [int(parts[0]), int(parts[1])]
# התאם את point לתבניות של מערכים
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
2קבלת החלטות מתקדמת
התאמה עם משתניםתנאי סף להתאמהתבניות מערכיםתבניות מילוניםבדיקות חברותסיכום – מנתח פקודות5אפליקציית ספר אנשי קשר
הצגת התפריטהוספת איש קשר8מנהל רשומות תלמידים
סקירת הפרויקטהוספת תלמידתרגלו בעצמכם: קומפיילר GDScript אונליין