Menu
Coddy logo textTech

Argomenti denominati

Fa parte della sezione Fondamenti del percorso Kotlin di Coddy. Lezione 58 di 93.

Quando chiami una funzione con più parametri, normalmente passi gli argomenti esattamente nell'ordine in cui sono definiti. Ma Kotlin offre un'alternativa più pulita: gli argomenti nominati.

Con gli argomenti con nome, specifichi a quale parametro appartiene ciascun valore usando il nome del parametro seguito da =:

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

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

Questo rende il tuo codice più leggibile, soprattutto quando una funzione ha diversi parametri dello stesso tipo. Confronta queste due chiamate:

// Senza argomenti con nome: cosa significano questi numeri?
calculateArea(10, 5, 3)

// Con argomenti con nome: molto più chiaro!
calculateArea(length = 10, width = 5, height = 3)

Gli argomenti con nome ti permettono anche di passare i valori nell'ordine che preferisci:

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

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

Puoi combinare argomenti posizionali e con nome, ma, una volta usato un argomento con nome, anche tutti gli argomenti successivi dovrebbero essere con nome per evitare confusione.

challenge icon

Sfida

Medio

Ti viene fornita la seguente funzione:

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

Leggi tre input: il titolo di un libro (String), il nome di un autore (String) e l’anno di pubblicazione (Int).

Chiama la funzione formatBook usando argomenti con nome in questo ordine specifico: year, title, author.

Per esempio, se gli input sono:

1984
George Orwell
1949

L’output dovrebbe essere:

"1984" by George Orwell (1949)

Provalo tu

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: Chiama formatBook usando argomenti con nome in quest'ordine: year, title, author
    
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Playground Kotlin