שיטות טווח
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Swift של Coddy. שיעור 9 מתוך 56.
טווחים הם Collection אמיתיים, ולכן הם כוללים את אותם הכלים שבהם משתמשים במערכים.
contains, count, first ו-last פועלים כולם ישירות:
let r = 1...10
print(r.contains(5)) // true
print(r.count) // 10
print(r.first!, r.last!) // 1 10גם רוב השיטות של מערכים שבהן השתמשת עובדות. filter מחזירה מערך, כי התוצאה של סינון טווח אינה בעצמה טווח:
let evens = (1...10).filter { $0 % 2 == 0 }
print(evens) // [2, 4, 6, 8, 10]כך גם עם reduce: לטווחים יש אותו, ותסתמכו עליו לחישובים מהירים של סכומים ומכפלות.
אתגר
קלקרא שני מספרים שלמים (בשתי שורות): n ו-target. התייחס לטווח הסגור 1...n כאל קבוצת הנתונים שלך.
הדפס שלוש שורות:
trueכאשרtargetנמצא בטווח, אחרתfalse- מכפלת כל הערכים בטווח (
n!: עצרת). השתמש ב-reduce. - הערכים בטווח שהם כפולות של
3, מחוברים באמצעות,(או שורה ריקה אם אין כאלה). השתמש ב-filter.
עבור הקלט 5 / 3, הפלט הוא:
true
120
3נסו בעצמכם
let n = Int(readLine()!)!
let target = Int(readLine()!)!
let r = 1...n
// TODO: contains(target), מכפלה באמצעות reduce, כפולות של 3 באמצעות filter
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
תרגלו בעצמכם: Swift אונליין