מהם ערכים אופציונליים
חלק מהיחידה יסודות במסלול ה-Swift של Coddy. שיעור 11 מתוך 86.
לפעמים ייתכן שלמשתנה אין ערך כלל. ב-Swift, אנחנו מייצגים היעדר ערך באמצעות אופציונליים. אופציונלי אומר "יש ערך, והוא שווה ל-x" או "אין ערך כלל."
כדי להכריז על ערך אופציונלי, הוסף סימן שאלה ? אחרי הטיפוס:
var nickname: String? = "Alex"
var age: Int? = nilבדוגמה שלמעלה, nickname מכיל את הערך "Alex", ואילו age מכיל nil: הדרך של Swift לומר "אין ערך". משתנים רגילים אינם יכולים להיות nil, אבל משתנים אופציונליים יכולים.
אפשר לחשוב על ערך אופציונלי כעל קופסה שעשויה להכיל משהו או להיות ריקה. לפני שמשתמשים במה שיש בתוכה, צריך לבדוק אם באמת יש שם משהו. זוהי תכונת בטיחות מרכזית ב-Swift, שעוזרת למנוע קריסות עקב ערכים חסרים באופן בלתי צפוי.
var score: Int? = 100
print(score) // Optional(100)
score = nil
print(score) // nilשימו לב שכאשר מדפיסים אופציונלי שמכיל ערך, הוא מציג Optional(100) במקום רק 100. כדי לגשת לערך עצמו שבתוכו, צריך לבצע ביטול עטיפה של האופציונלי, ועל כך נלמד בשיעורים הבאים.
אתגר
קלכתבו פונקציה createOptional שמקבלת מספר ומחזירה מחרוזת המציגה איך המספר הזה ייראה כשמדפיסים אותו כערך אופציונלי.
חשוב: הפונקציה מחזירה String. אתם כותבים טקסט שנראה כמו ערך אופציונלי, ולא מחזירים ערך אופציונלי ממשי.
כשמדפיסים ערך אופציונלי שמכיל ערך, Swift מציגה אותו בתבנית Optional(value).
תזכורת לתחביר של פונקציה: ב-Swift, פונקציה שמחזירה ערך משתמשת בחץ -> כדי לציין את טיפוס ההחזרה, ובמילת המפתח return כדי להחזיר את התוצאה. לדוגמה:
func myFunction(param: Int) -> String {<br> return "result"<br>}
אפשר לבנות את מחרוזת ההחזרה באמצעות אינטרפולציה של מחרוזת: "Optional(\(value))": החלק \(value) מכניס את המספר ישירות לתוך המחרוזת.
פרמטרים:
value(Int): המספר לעטיפה בתבנית של ערך אופציונלי
החזרה: מחרוזת בתבנית Optional(value), כאשר value הוא המספר שסופק.
דוגמה: אם הקלט הוא 100, החזירו "Optional(100)"
נסו בעצמכם
func createOptional(value: Int) -> String {
// החזר String שנראה כמו ערך אופציונלי, לא ערך אופציונלי אמיתי
// הכנס את המספר בין הסוגריים באמצעות שילוב משתנים במחרוזת
return "Optional()"
}
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
7קלט/פלט בסיסי
פונקציית ההדפסהאינטרפולציה של מחרוזותקלט באמצעות ReadLineהמרת טיפוסיםחזרה – עד 120חזרה – אמת או שקר3ערכים אופציונליים
מהם ערכים אופציונלייםשליפת ערך באמצעות If LetGuard Letאופרטור איחוד עם Nilסיכום – שליפה בטוחה של ערך9לולאות
לולאת For-Inלולאת Whileלולאת Repeat-WhileBreakContinueחזרה – עצרתטווחים בלולאותלולאה מקוננתחזרה – קלט דינמיתרגלו בעצמכם: Swift אונליין