Funzione Kotlin (con esempio)

In questo articolo imparerai le funzioni; quali sono le funzioni, la sua sintassi e come creare una funzione utente in Kotlin.

Nella programmazione, la funzione è un gruppo di istruzioni correlate che eseguono un'attività specifica.

Le funzioni vengono utilizzate per suddividere un programma di grandi dimensioni in blocchi modulari più piccoli. Ad esempio, è necessario creare e colorare un cerchio in base all'input dell'utente. Puoi creare due funzioni per risolvere questo problema:

  • createCircle() Funzione
  • colorCircle() Funzione

Dividere un programma complesso in componenti più piccole rende il nostro programma più organizzato e gestibile.

Inoltre, evita le ripetizioni e rende il codice riutilizzabile.

Tipi di funzioni

A seconda che una funzione sia definita dall'utente o disponibile nella libreria standard, ci sono due tipi di funzioni:

  • Funzione di libreria standard di Kotlin
  • Funzioni definite dall'utente

Funzione di libreria standard di Kotlin

Le funzioni della libreria standard sono funzioni integrate in Kotlin che sono prontamente disponibili per l'uso. Per esempio,

  • print() è una funzione di libreria che stampa il messaggio nel flusso di output standard (monitor).
  • sqrt()restituisce la radice quadrata di un numero ( Doublevalore)
 fun main(args: Array) ( var number = 5.5 print("Result = $(Math.sqrt(number))") )

Quando esegui il programma, l'output sarà:

 Risultato = 2,345207879911715

Ecco un collegamento alla libreria standard di Kotlin da esplorare.

Funzioni definite dall'utente

Come accennato, puoi creare funzioni da solo. Tali funzioni sono chiamate funzioni definite dall'utente.

Come creare una funzione definita dall'utente in Kotlin?

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

Ecco come puoi definire una funzione in Kotlin:

 fun callMe () (// function body) 

Per definire una funzione in Kotlin, funviene utilizzata la parola chiave. Quindi viene il nome della funzione (identificatore). Qui, il nome della funzione è callMe.

Nel programma precedente, la parentesi ( )è vuota. Significa che questa funzione non accetta alcun argomento. Imparerai a conoscere gli argomenti più avanti in questo articolo.

I codici all'interno delle parentesi graffe ( )sono il corpo della funzione.

Come chiamare una funzione?

Devi chiamare la funzione per eseguire i codici all'interno del corpo della funzione. Ecco come:

 Chiamami()

Questa istruzione chiama la callMe()funzione dichiarata in precedenza.

Esempio: programma di funzioni semplici

 fun callMe() ( println("Printing from callMe() function.") println("This is cool (still printing from inside).") ) fun main(args: Array) ( callMe() println("Printing outside from callMe() function.") )

Quando esegui il programma, l'output sarà:

Stampa dalla funzione callMe (). Questo è bello (stampa ancora dall'interno). Stampa all'esterno della funzione callMe ().

La callMe()funzione nel codice precedente non accetta alcun argomento.

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

Prendiamo un altro esempio di funzione. Questa funzione accetterà argomenti e restituirà anche un valore.

Esempio: aggiungi due numeri usando la funzione

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

Quando esegui il programma, l'output sarà:

 risultato = 15

Come funzionano le funzioni con argomenti e valore restituito?

Qui, due argomenti numero1 e numero2 di tipo Doublevengono passati alla addNumbers()funzione durante la chiamata della funzione. Questi argomenti sono chiamati argomenti effettivi.

 risultato = addNumbers (numero1, numero2)

I parametri n1 e n2 accettano gli argomenti passati (nella definizione della funzione). Questi argomenti sono chiamati argomenti formali (o parametri).

In Kotlin, arguments are separated using commas. Also, the type of the formal argument must be explicitly typed.

Note that, the data type of actual and formal arguments should match, i.e., the data type of first actual argument should match the type of first formal argument. Similarly, the type of second actual argument must match the type of second formal argument and so on.

Here,

 return sumInteger

is the return statement. This code terminates the addNumbers() function, and control of the program jumps to the main() function.

In the program, sumInteger is returned from addNumbers() function. This value is assigned to the variable result.

Notice,

  • both sumInteger and result are of type Int.
  • the return type of the function is specified in the function definition.
     // return type is Int fun addNumbers(n1: Double, n2: Double): Int (… )

If the function doesn't return any value, its return type is Unit. It is optional to specify the return type in the function definition if the return type is Unit.

Example: Display Name by Using Function

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

When you run the program, the output will be:

 John Doe

Here, the getName() function takes two String arguments, and returns a String.

You can omit the curly braces ( ) of the function body and specify the body after = symbol if the function returns a single expression (like above example).

It is optional to explicitly declare the return type in such case because the return type can be inferred by the compiler. In the above example, you can replace

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

con

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

Questa è solo una breve introduzione alle funzioni in Kotlin. Articoli consigliati relativi alle funzioni:

  • Funzioni inline di Kotlin
  • Funzioni di infisso di Kotlin
  • Ambito della funzione di Kotlin
  • Argomenti predefiniti e denominati di Kotlin
  • Ricorsione di Kotlin
  • Funzione ricorsiva della coda di Kotlin
  • Funzione di estensione di Kotlin
  • Funzioni di ordine elevato e Lambda di Kotlin

Articoli interessanti...