חיתוך מערכים — חלק 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]אתגר
קלכתבו פונקציה 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] {
// כתבו כאן את הקוד
}
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
7קלט/פלט בסיסי
פונקציית ההדפסהאינטרפולציה של מחרוזותקלט באמצעות ReadLineהמרת טיפוסיםחזרה – עד 120חזרה – אמת או שקר3ערכים אופציונליים
מהם ערכים אופציונלייםשליפת ערך באמצעות If LetGuard Letאופרטור איחוד עם Nilסיכום – שליפה בטוחה של ערך9לולאות
לולאת For-Inלולאת Whileלולאת Repeat-WhileBreakContinueחזרה – עצרתטווחים בלולאותלולאה מקוננתחזרה – קלט דינמיתרגלו בעצמכם: Swift אונליין