Menu
CoddyTech

מערכים מטיפוסים מוגדרים

חלק מהיחידה יסודות במסלול ה-GDScript של Coddy. שיעור 68 מתוך 92.

מערך רגיל מקבל ערכים מכל סוג. מערך מטופס מקבל סוג אחד בלבד, שנכתב בסוגריים מרובעים אחרי Array:

var scores: Array[int] = [90, 85, 77]
var players: Array[String] = ["Ana", "Ben"]
var bonuses: Array[int] = []

GDScript בודק כל ערך. ערך מהסוג הלא נכון בסוגריים מדווח לפני שהתוכנית מופעלת:

var scores: Array[int] = [90, "high"]  # שגיאה: "high" אינו ערך מסוג int

הוספת ערך מסוג שגוי בזמן שהתוכנית פועלת היא גם שגיאה, והערך לא מתווסף:

var scores: Array[int] = [90, 85]
var bonus = "ten"
scores.append(bonus)  # שגיאה, scores נשאר [90, 85]

הסקת טיפוסים באמצעות := אינה יוצרת מערך מטיפוס מוגדר: var scores := [90, 85] הוא Array רגיל. כתוב Array[int] כדי לקבל מערך כזה.

מכיוון שמערך מטיפוס מוגדר מכיר את סוג האיברים שלו, var best := scores[0] מסיק את הטיפוס int. במערך רגיל, אותה שורה היא שגיאה, מכיוון שהאיברים שלו יכולים להיות מכל סוג.

למערכים מטיפוס מוגדר יש אותם אינדקסים ושיטות כמו למערכים רגילים, ו־print(scores) מציג אותם באותה צורה: [90, 85].

challenge icon

אתגר

קל

התוכנית קוראת מספר מהקלט, ואז את אותו מספר של ציונים, אחד בכל שורה.

  1. הכריזו על scores כמערך מטופס ריק של מספרים שלמים
  2. קראו כל ציון, המירו אותו באמצעות int() והוסיפו אותו אל scores
  3. הדפיסו את scores, ואז את Best: ואחריו את הציון הגבוה ביותר

עבור הקלט שלהלן, הפלט הוא:

3
70
95
88
[70, 95, 88]
Best: 95

נסו בעצמכם

extends Node

func _ready():
	var count := int(OS.read_string_from_stdin())
	# 1. הכריזו על scores, מערך ריק מטיפוס int
	# 2. קראו count ציונים והוסיפו כל אחד מהם למערך
	# 3. הדפיסו את scores, אחר כך את "Best: " ואת הציון הגבוה ביותר
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה יסודות

תרגלו בעצמכם: קומפיילר GDScript אונליין