תוויות ארגומנטים
חלק מהיחידה יסודות במסלול ה-Swift של Coddy. שיעור 54 מתוך 86.
Swift מאפשרת לך לשלוט באופן שבו קריאות לפונקציות נקראות באמצעות תוויות ארגומנטים. תווית ארגומנט היא מה שמשתמשים בו כשקוראים לפונקציה, ואילו שם הפרמטר הוא מה שמשתמשים בו בתוך גוף הפונקציה.
אפשר לציין את שניהם על ידי כתיבת תווית הארגומנט לפני שם הפרמטר:
func greet(to name: String) {
print("Hello, \(name)!")
}
greet(to: "Alice") // פלט: Hello, Alice!כאן, to היא תווית הארגומנט (שמשמשת בעת הקריאה לפונקציה), ו-name הוא שם הפרמטר (שמשמש בתוך הפונקציה). כך הקריאה נשמעת טבעית יותר: "greet to Alice."
לפעמים רוצים להשמיט את התווית לגמרי כדי שהקריאות יהיו נקיות יותר. משתמשים בקו תחתון (_) בתור תווית הארגומנט:
func square(_ number: Int) -> Int {
return number * number
}
print(square(5)) // פלט: 25בלי הקו התחתון, היה צריך לכתוב square(number: 5). הקו התחתון מסיר את הדרישה הזאת, והופך את הקריאה לפשוטה יותר כשהשם של הפונקציה כבר מבהיר את מטרתה.
אתגר
קלצרו שתי פונקציות שמדגימות טכניקות שונות של תוויות ארגומנטים:
פונקציה 1: send
- השתמשו בתווית הארגומנט
messageעם שם הפרמטרtext(סוגString) - השתמשו בתווית הארגומנט
toעם שם הפרמטרrecipient(סוגString) - החזירו מחרוזת בפורמט:
"Sending '[text]' to [recipient]"
פונקציה 2: double
- השתמשו בקו תחתון
_כדי להשמיט את תווית הארגומנט - שם הפרמטר
number(סוגInt) - החזירו את המספר כשהוא מוכפל ב-2
לאחר הגדרת שתי הפונקציות, קראו שתי מחרוזות ומספר שלם אחד מהקלט, ואז קראו לשתי הפונקציות והדפיסו את התוצאות בשורות נפרדות.
הקלט שתקבלו:
- שורה ראשונה: טקסט ההודעה (לדוגמה,
"Hello") - שורה שנייה: שם הנמען (לדוגמה,
"Alice") - שורה שלישית: מספר להכפלה ב-2 (לדוגמה,
"7")
לדוגמה, אם הקלט הוא "Hello", "Alice" ו-"7", הפלט צריך להיות:
Sending 'Hello' to Alice
14נסו בעצמכם
// קראו את הקלט
let messageText = readLine()!
let recipientName = readLine()!
let numberToDouble = Int(readLine()!)!
// TODO: כתבו את הקוד שלכם למטה
// הגדירו את הפונקציה 'send' עם תוויות הארגומנטים 'message' ו-'to'
// הגדירו את הפונקציה 'double' ללא תווית ארגומנט, באמצעות '_'
// קראו לשתי הפונקציות והדפיסו את התוצאותהשיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
7קלט/פלט בסיסי
פונקציית ההדפסהאינטרפולציה של מחרוזותקלט באמצעות ReadLineהמרת טיפוסיםחזרה – עד 120חזרה – אמת או שקר10פונקציות
הכרזה על פונקציהפרמטרים וארגומנטיםערכי החזרהתוויות ארגומנטיםחזרה: פונקציית סיגמאחזרה: פונקציית אימותערכי ברירת מחדל3ערכים אופציונליים
מהם ערכים אופציונלייםשליפת ערך באמצעות If LetGuard Letאופרטור איחוד עם Nilסיכום – שליפה בטוחה של ערך9לולאות
לולאת For-Inלולאת Whileלולאת Repeat-WhileBreakContinueחזרה – עצרתטווחים בלולאותלולאה מקוננתחזרה – קלט דינמיתרגלו בעצמכם: Swift אונליין