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

Funzioni in Kotlin

In questo articolo, scoprirai le funzioni. Cos'è una funzione, la sua sintassi e come creare funzioni utente in Kotlin.

Nel programming, una funzione è un gruppo di istruzioni correlate che eseguono un compito specifico.

Le funzioni vengono utilizzate per dividere programmi grandi in moduli modulati. Ad esempio, se devi creare cerchi e colorarli in base all'input dell'utente, puoi creare due funzioni per risolvere questo problema:

  • La funzione createCircle() - utilizzata per creare cerchi

  • La funzione colorCircle() - utilizzata per riempire il colore

Dividere un programma complesso in componenti più piccoli può rendere il nostro programma più organizzato e più facile da gestire.

Inoltre, evita la ripetizione e rende il codice riutilizzabile.

Tipo di funzione

In base alla funzione definita dall'utente o alla funzione della libreria standard, ci sono due tipi di funzioni:

  • Funzioni di libreria standard di Kotlin

  • Funzione definita dall'utente

Funzioni di libreria standard di Kotlin

Le funzioni di libreria standard sono funzioni integrate in Kotlin che possono essere utilizzate in qualsiasi momento. Ad esempio,

  • print() è una funzione di libreria che può stampare messaggi sul flusso di output standard (monitor).

  • sqrt() restituisce la radice quadrata del numero (valore Double)

fun main(args: Array<String>) {
    var number = 5.5
    print("Result = ${Math.sqrt(number)}")
}

Quando si esegue questo programma, l'output è:

Result = 2.345207879911715

Questo èBiblioteca standard di KotlinI link, per la tua navigazione.

Funzione definita dall'utente

Come già detto, puoi creare funzioni tu stesso. Queste funzioni si chiamano funzioni definite dall'utente.

Come creare una funzione definita dall'utente in Kotlin?

Prima di utilizzare (chiamare) una funzione, è necessario definirla.

Il modo di definire una funzione in Kotlin è il seguente:

fun callMe() {
    //Corpo della funzione
}

Per definire una funzione in Kotlin, utilizzare la parola chiave fun. Poi c'è il nome della funzione (Identificatore)。In questo caso, il nome della funzione è callMe.

Nel programma sopra, le parentesi ( ) sono vuote. Questo significa che la funzione non accetta alcun parametro. Ne parleremo nella parte successiva dell'articolo.

Il codice tra le parentesi graffe { } è il corpo della funzione.

Come chiamare una funzione?

Devi chiamare questa funzione per eseguire il codice all'interno della funzione. Ecco come fare:

callme()

La seguente istruzione chiama la funzione callMe() precedentemente dichiarata.

Esempio: programma di funzione semplice

fun callMe() {
    println("Stampa da callMe() funzione.")
    println("Questo è fantastico (ancora in stampa dall'interno).")
}
fun main(args: Array<String>) {
    callMe()
    println("Stampa esterna da callMe() funzione.")
}

Quando si esegue questo programma, l'output è:

Stampa da callMe() funzione.
Questo è fantastico (ancora in stampa dall'interno).
Stampa esterna da callMe() funzione.

La funzione callMe() presente nel codice sopra non accetta alcun parametro.

Inoltre, la funzione non restituisce alcun valore (il tipo di ritorno è Unit).

Vediamo un altro esempio di funzione. Questa funzione accetta parametri e restituisce un valore.

Esempio: sommare due numeri utilizzando la funzione

fun addNumbers(n1: Double, n2: Double): Int {
    val sum = n1 + n2
    val sumInteger = sum.toInt()
    return sumInteger
}
fun main(args: Array<String>) {
    val number1 = 12.2
    val number2 = 3.4
    val result: Int
    result = addNumbers(number1, number2)
    println("result = $result")
}

Quando si esegue questo programma, l'output è:

result = 15

Come funzionano le funzioni con parametri e valore di ritorno?

In questo caso, durante la chiamata della funzione, due parametri di tipo Double number1 e number2 vengono passati alla funzione addNumbers(). Questi parametri sono detti parametri effettivi (parametri effettivi).

result = addNumbers(number1, number2)

I parametri n1 e n2 accettano i parametri passati (nelle definizioni della funzione). Questi parametri sono detti parametri formali (o parametri formali).

In Kotlin, i parametri sono separati da virgola. Allo stesso modo, i tipi dei parametri formali devono essere specificati esplicitamente.

Attenzione, i tipi dei parametri effettivi e dei parametri formali devono corrispondere, ossia, il tipo del primo parametro effettivo deve corrispondere al tipo del primo parametro formale. Allo stesso modo, il tipo del secondo parametro effettivo deve corrispondere al tipo del secondo parametro formale, e così via.

Ecco,

return sumInteger

È una statement return. Questo codice termina la funzione addNumbers(), il controllo del programma salta alla funzione main().

Nel programma, sumInteger viene restituito dalla funzione addNumbers(). Questo valore è assegnato alla variabile result.

Attenzione,

  • sumInteger e result sono entrambi di tipo Int.

  • Il tipo di ritorno della funzione è specificato nella definizione della funzione.

    //Il tipo di ritorno è Int
    fun addNumbers(n1: Double, n2: Double): Int {
        ... .. ...
    }

Se la funzione non restituisce alcun valore, il suo tipo di ritorno è Unit. Se il tipo di ritorno è Int, è possibile specificare il tipo di ritorno nella definizione della funzione.

Esempio: visualizzare il nome utilizzando la funzione

fun main(args: Array<String>) {
    println(getName("John", "Doe"))
}
fun getName(firstName: String, lastName: String): String = "$firstName $lastName"

Quando si esegue questo programma, l'output è:

John Doe

In questo caso, la funzione getName() accetta due parametri String e restituisce String.

Se la funzione restituisce un singolo espressione (come nell'esempio sopra indicato), è possibile saltare i parentesi graffi {} del corpo della funzione e specificare l'oggetto dopo il simbolo =.

In questo caso, la dichiarazione esplicita del tipo di ritorno è opzionale, poiché il tipo di ritorno può essere inferito dal compilatore. Nei suggerimenti di sopra, è possibile sostituire

fun getName(firstName: String, lastName: String): String = "$firstName $lastName"

Equivalente a:

fun getName(firstName: String, lastName: String) = "$firstName $lastName"

Questo articolo fornisce una breve introduzione ai funzioni in Kotlin.