טאפלים
חלק מהיחידה יסודות במסלול ה-Swift של Coddy. שיעור 68 מתוך 86.
בעוד שמערכים מאחסנים ערכים רבים מאותו טיפוס, לפעמים צריך לקבץ יחד כמה ערכים קשורים מטיפוסים שונים. כאן tuples מועילים.
טופל הוא אוסף קבוע של ערכים שיכולים להיות מסוגים שונים. יוצרים אותו על ידי הצבת ערכים בתוך סוגריים עגולים, כשהם מופרדים בפסיקים:
let person = ("Alice", 25, true)
print(person) // ("Alice", 25, true)כדי לגשת לערכים בודדים, השתמשו באינדקס שלהם עם נקודה:
let coordinates = (10.5, 20.3)
print(coordinates.0) // 10.5
print(coordinates.1) // 20.3אפשר גם לתת שמות לאיברים כדי לשפר את הקריאות:
let product = (name: "Laptop", price: 999.99)
print(product.name) // Laptop
print(product.price) // 999.99תכונה שימושית נוספת היא פירוק של טופל למשתנים נפרדים:
let point = (3, 7)
let (x, y) = point
print(x) // 3
print(y) // 7טאפלים מושלמים להחזרת כמה ערכים מפונקציה או לקיבוץ כמויות קטנות של נתונים קשורים בלי ליצור מבנה מלא.
אתגר
קלתקבלו שלוש שורות קלט:
- שם (מחרוזת)
- גיל (Int)
- ציון (Double)
צרו tuple בשם student עם איברים בעלי שמות: name, age ו-score.
לאחר מכן, פרקו את ה-tuple לשלושה משתנים נפרדים: studentName, studentAge ו-studentScore.
הדפיסו את שלוש השורות הבאות:
- שם התלמיד, באמצעות גישה לאיבר בעל השם
- גיל התלמיד, באמצעות גישה לפי אינדקס (סימון בנקודה עם מספר)
- משתנה הציון שפורק
דוגמה: אם הקלט הוא Emma, 21 ו-95.5, הפלט שלכם צריך להיות:
Emma
21
95.5נסו בעצמכם
// קרא קלט
let name = readLine()!
let age = Int(readLine()!)!
let score = Double(readLine()!)!
// TODO: כתבו את הקוד שלכם למטה
// 1. צרו tuple בשם 'student' עם איברים בעלי שמות: name, age ו-score
// 2. פרקו את ה-tuple לשלושה משתנים נפרדים: studentName, studentAge ו-studentScore
// 3. הדפיסו את שם התלמיד באמצעות האיבר בעל השם (student.name)
// 4. הדפיסו את גיל התלמיד באמצעות סימון אינדקס (student.1)
// 5. הדפיסו את משתנה הציון שהתקבל מהפירוק (studentScore)השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
7קלט/פלט בסיסי
פונקציית ההדפסהאינטרפולציה של מחרוזותקלט באמצעות ReadLineהמרת טיפוסיםחזרה – עד 120חזרה – אמת או שקר3ערכים אופציונליים
מהם ערכים אופציונלייםשליפת ערך באמצעות If LetGuard Letאופרטור איחוד עם Nilסיכום – שליפה בטוחה של ערך9לולאות
לולאת For-Inלולאת Whileלולאת Repeat-WhileBreakContinueחזרה – עצרתטווחים בלולאותלולאה מקוננתחזרה – קלט דינמי12יסודות המערכים
הכרזה על מערךגישה לאיבריםשינוי מערכיםמתודות של מערכיםחזרה – רשימת מוצריםמערך הפוךטאפליםתרגלו בעצמכם: Swift אונליין