המרת טיפוסים
חלק מהיחידה יסודות במסלול ה-Swift של Coddy. שיעור 34 מתוך 86.
מכיוון ש־readLine() מחזירה String?, לעיתים קרובות תצטרך להמיר את המחרוזת למספר כדי לבצע חישובים. Swift דורשת המרת טיפוסים מפורשת. היא לא תהפוך מחרוזת למספר שלם או למספר עשרוני באופן אוטומטי.
כדי להמיר מחרוזת למספר שלם, השתמשו באתחול Int(). מכיוון שההמרה עלולה להיכשל (המחרוזת עשויה להכיל אותיות במקום ספרות), היא מחזירה ערך אופציונלי:
let input = "42"
if let number = Int(input) {
print(number + 10) // פלט: 52
}עבור מספרים עשרוניים, השתמשו ב־Double():
let priceString = "19.99"
if let price = Double(priceString) {
print(price * 2) // פלט: 39.98
}זה שימושי במיוחד כשמשלבים את readLine() עם פעולות מספריות. אפשר לשרשר את ביטול העטיפה:
if let input = readLine(), let age = Int(input) {
print("Next year you'll be \(age + 1)")
}הפסיק במשפט if let פירושו ששני התנאים חייבים להתקיים: הקלט חייב להיות קיים, וצריכה להיות אפשרות להמיר אותו למספר שלם.
אתגר
קלקראו שתי קלטים: מספר עשרוני כמחרוזת ומספר שלם כמחרוזת. המירו אותם לסוגים המספריים המתאימים וחשבו את המכפלה שלהם.
תקבלו את הקלטים הבאים:
- שורה ראשונה: מספר עשרוני (למשל,
"3.5") - שורה שנייה: מספר שלם (למשל,
"4")
השתמשו ב־readLine() כדי לקרוא את שני הקלטים. המירו את הקלט הראשון ל־Double ואת השני ל־Int. לאחר מכן הכפילו אותם זה בזה והדפיסו את התוצאה.
השתמשו ב־if let עם קשירת ערכים אופציונליים משורשרת כדי לשלוף בבטחה את הקלט ואת הערך שהומר.
הדפיסו: את מכפלת שני המספרים כ־Double
נסו בעצמכם
// קראו את המספר העשרוני כמחרוזת
if let decimalString = readLine() {
// קראו את המספר השלם כמחרוזת
if let intString = readLine() {
// TODO: כתבו את הקוד שלכם למטה
// המירו את decimalString ל-Double ואת intString ל-Int באמצעות if let
// לאחר מכן חשבו והדפיסו את המכפלה שלהם
}
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
7קלט/פלט בסיסי
פונקציית ההדפסהאינטרפולציה של מחרוזותקלט באמצעות ReadLineהמרת טיפוסיםחזרה – עד 120חזרה – אמת או שקר3ערכים אופציונליים
מהם ערכים אופציונלייםשליפת ערך באמצעות If LetGuard Letאופרטור איחוד עם Nilסיכום – שליפה בטוחה של ערך9לולאות
לולאת For-Inלולאת Whileלולאת Repeat-WhileBreakContinueחזרה – עצרתטווחים בלולאותלולאה מקוננתחזרה – קלט דינמיתרגלו בעצמכם: Swift אונליין