English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Kotlin默认和命名参数

In questo articolo, imparerai i parametri predefiniti e i parametri con nome con l'aiuto di esempi.

Parametri predefiniti di Kotlin

In Kotlin, è possibile fornire valori predefiniti per i parametri definiti nel corpo di una funzione.

Se si chiama il metodo passando i parametri, questi vengono utilizzati come parametri. Tuttavia, se si chiama il metodo senza passare parametri, verranno utilizzati i parametri predefiniti.

Come funzionano i parametri predefiniti?

Primo: Si passano tutti i parametri

Il metodo foo() ha due parametri. I parametri hanno valori predefiniti. Tuttavia, foo() viene chiamato con due parametri nel programma sopra menzionato. Pertanto, non vengono utilizzati i parametri predefiniti.

Nel metodo foo(), i valori di letter e number sono rispettivamente 'x' e 2.

Secondo: Non si passano tutti i parametri, ma si passa uno solo

In questo caso, viene passato solo uno (il primo) parametro al metodo foo(). Pertanto, il primo parametro utilizza il valore passato al metodo. Tuttavia, il secondo parametro number utilizzerà il valore predefinito, poiché non è stato passato alcun secondo parametro durante la chiamata del metodo.

Nel metodo foo(), i valori di letter e number sono rispettivamente 'y' e 15.

Terzo: Non si passano alcun parametro

In questo caso, chiamiamo il metodo foo() senza passare alcun parametro. Pertanto, entrambi i parametri utilizzano i valori predefiniti.

Nel metodo foo(), i valori di letter e number sono rispettivamente 'a' e 15.

Esempio: Parametri predefiniti Kotlin

fun displayBorder(character: Char = '=', length: Int = 15) {
    for (i in 1..length) {
        print(character)
    }
}
fun main(args: Array<String>) {
    println("Output quando non si passano parametri:")
    displayBorder()
    println("\n\n'*' viene utilizzato come primo parametro.")
    println("Output quando si passa il primo parametro:")
    displayBorder('*')
    println("\n\n'*' viene utilizzato come primo parametro.")
    println("5 viene utilizzato come secondo parametro.")
    println("Output quando si passano due parametri contemporaneamente:")
    displayBorder('*', 5)
}

运行该程序时,输出为:

Output quando non si passano parametri:
===============
*' come primo parametro.
Output quando si passa il primo parametro:
***************
*' come primo parametro.
5 come secondo parametro.
Output quando si passano due parametri contemporaneamente:
*****

Esempio: Parametri di nomi Kotlin

Prima di discutere i parametri di nomi, consideriamo alcune modifiche al codice sopra:

fun displayBorder(character: Char = '=', length: Int = 15) {
    for (i in 1..length) {
        print(character)
    }
}
fun main(args: Array<String>) {
    displayBorder(5)
}

In questo caso, proviamo a passare il secondo parametro al metodo displayBorder() e utilizzare il parametro predefinito per il primo parametro. Tuttavia, questo codice genererà un errore di utilizzo. Questo è perché il compilatore pensa che stiamo cercando di fornire il numero 5 (valore Int) a un carattere (tipo Char).

Per risolvere questa situazione, è possibile utilizzare i parametri di nomi. Il metodo è il seguente:

Esempio: Parametri di nomi Kotlin

fun displayBorder(character: Char = '=', length: Int = 15) {
    for (i in 1..length) {
        print(character)
    }
}
fun main(args: Array<String>) {
    displayBorder(length = 5)
}

运行该程序时,输出为:

=====

在上面的程序中,我们使用命名实参(length = 5)来指定length函数定义中的参数应采用此值(与实参的位置无关)。

第一个参数字符使用程序中的默认值 '='。