Menu
Coddy logo textTech

חיתוך מערכים — חלק 1

חלק מהיחידה יסודות במסלול ה-Swift של Coddy. שיעור 73 מתוך 86.

לפעמים אין צורך במערך שלם, אלא רק בחלק ממנו. Swift מאפשרת לחלץ בקלות תת-קבוצה של איברים באמצעות חיתוך מערך בעזרת אופרטורי טווח.

כדי לקבל פרוסה, משתמשים בטווח בתוך סוגריים מרובעים של אינדקס. הגישה הנפוצה ביותר משתמשת באופרטור הטווח החצי־פתוח (..<), שכולל את אינדקס ההתחלה אך לא את אינדקס הסיום:

let numbers = [10, 20, 30, 40, 50]
let slice = numbers[1..<4]
print(slice)  // [20, 30, 40]

כאן, 1..<4 נותן לנו את האיברים באינדקסים 1, 2 ו-3, אך לא באינדקס 4. זה שימושי כשידוע לך בדיוק היכן ברצונך לעצור.

אם ברצונך לכלול את אינדקס הסיום, השתמש באופרטור טווח סגור (...):

let letters = ["a", "b", "c", "d", "e"]
let slice = letters[1...3]
print(slice)  // ["b", "c", "d"]

פרט חשוב אחד: התוצאה של חיתוך היא ArraySlice, ולא Array רגיל. אם צריך מערך אמיתי, יש לעטוף אותו ב-Array():

let original = [1, 2, 3, 4, 5]
let sliced = Array(original[0..<3])
print(sliced)  // [1, 2, 3]
challenge icon

אתגר

קל
כתבו פונקציה getMiddleElements שמקבלת את numbers, את start ואת end, ומחזירה פרוסה של המערך מהאינדקס ההתחלתי ועד לאינדקס הסופי (לא כולל).

השתמשו באופרטור הטווח החצי-פתוח (..<) כדי לחלץ את החלק שצוין מהמערך ולהחזיר אותו כמערך רגיל.

פרמטרים:

  • numbers ([Int]): המערך שיש לחתוך
  • start (Int): האינדקס ההתחלתי (כולל)
  • end (Int): האינדקס הסופי (לא כולל)

ערך מוחזר: מערך שמכיל את האיברים מהאינדקס ההתחלתי ועד לאינדקס הסופי (לא כולל) ([Int])

דוגמה: אם numbers הוא [10, 20, 30, 40, 50, 60], start הוא 1 ו-end הוא 4, הפונקציה אמורה להחזיר [20, 30, 40].

נסו בעצמכם

func getMiddleElements(numbers: [Int], start: Int, end: Int) -> [Int] {
    // כתבו כאן את הקוד
}
quiz iconבחנו את עצמכם

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

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

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