Menu
Coddy logo textTech

ארגומנטים בעלי שם

חלק מהיחידה יסודות במסלול ה-Kotlin של Coddy. שיעור 58 מתוך 93.

כשקוראים לפונקציה עם כמה פרמטרים, בדרך כלל מעבירים את הארגומנטים בדיוק בסדר שבו הם מוגדרים. אבל Kotlin מציעה חלופה נקייה יותר: ארגומנטים בעלי שם.

עם ארגומנטים בעלי שם, מציינים לאיזה פרמטר שייך כל ערך באמצעות שם הפרמטר ואחריו =:

fun createProfile(name: String, age: Int, city: String) {
    println("$name, $age, from $city")
}

fun main() {
    createProfile(name = "Alice", age = 25, city = "Paris")
}
// פלט: Alice, 25, from Paris

כך הקוד שלך קריא יותר, במיוחד כשיש לפונקציה כמה פרמטרים מאותו סוג. השוו בין שתי הקריאות הבאות:

// בלי ארגומנטים בעלי שם - מה משמעות המספרים האלה?
calculateArea(10, 5, 3)

// עם ארגומנטים בעלי שם - הרבה יותר ברור!
calculateArea(length = 10, width = 5, height = 3)

ארגומנטים בעלי שמות מאפשרים לך גם להעביר ערכים בכל סדר שתעדיף:

fun greet(firstName: String, lastName: String) {
    println("Hello, $firstName $lastName!")
}

fun main() {
    greet(lastName = "Smith", firstName = "John")
}
// פלט: Hello, John Smith!

אפשר לשלב ארגומנטים מיקומיים ונקובים, אבל ברגע שמשתמשים בארגומנט נקוב, גם כל הארגומנטים הבאים צריכים להיות נקובים כדי למנוע בלבול.

challenge icon

אתגר

בינוני

נתונה לך הפונקציה הבאה:

fun formatBook(title: String, author: String, year: Int) {
    println("\"$title\" by $author ($year)")
}

קרא שלושה קלטים: כותרת של ספר (String), שם המחבר (String) ושנת הפרסום (Int).

קרא לפונקציה formatBook באמצעות ארגומנטים בעלי שם בסדר המסוים הזה: year, title, author.

לדוגמה, אם הקלטים הם:

1984
George Orwell
1949

הפלט צריך להיות:

"1984" by George Orwell (1949)

נסו בעצמכם

fun formatBook(title: String, author: String, year: Int) {
    println("\"$title\" by $author ($year)")
}

fun main() {
    val title = readLine()!!
    val author = readLine()!!
    val year = readLine()!!.toInt()
    
    // TODO: יש לקרוא ל-formatBook באמצעות ארגומנטים בעלי שם בסדר הזה: year, title, author
    
}
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה יסודות

תרגלו בעצמכם: Kotlin אונליין