Kotlin - Funzioni

Kotlin è un linguaggio tipizzato staticamente, quindi le funzioni giocano un ruolo importante in esso. Conosciamo abbastanza bene la funzione, poiché la usiamo in tutti gli esempi. La funzione è dichiarata con la parola chiave "fun". Come ogni altro OOP, richiede anche un tipo di ritorno e un elenco di argomenti di opzione.

Nell'esempio seguente, definiamo una funzione chiamata MyFunction e dalla funzione principale chiamiamo questa funzione e passiamo alcuni argomenti.

fun main(args: Array<String>) {
   println(MyFunction("tutorialsPoint.com"))
}
fun MyFunction(x: String): String {
   var c:String  = "Hey!! Welcome To ---"
   return (c+x)
}

La parte di codice precedente produrrà il seguente output nel browser.

Hey!! Welcome To ---tutorialsPoint.com

La funzione dovrebbe essere dichiarata come segue:

fun <nameOfFunction>(<argument>:<argumentType>):<ReturnType>

Di seguito sono riportati alcuni dei diversi tipi di funzione disponibili in Kotlin.

Funzione Lambda

Lambda è una funzione di alto livello che riduce drasticamente il codice di targa pur dichiarando una funzione e definendola. Kotlin ti consente di definire il tuo lambda. In Kotlin, puoi dichiarare il tuo lambda e passare quel lambda a una funzione.

Dai un'occhiata al seguente esempio.

fun main(args: Array<String>) {
   val mylambda :(String)->Unit  = {s:String->print(s)}
   val v:String = "TutorialsPoint.com"
   mylambda(v)
}

Nel codice sopra, abbiamo creato il nostro lambda noto come "mylambda" e abbiamo passato una variabile a questo lambda, che è di tipo String e contiene un valore "TutorialsPoint.com".

La parte di codice precedente produrrà il seguente output nel browser.

TutorialsPoint.com

Funzione inline

L'esempio sopra mostra le basi dell'espressione lambda che possiamo usare nell'applicazione Kotlin. Ora, possiamo passare un lambda a un'altra funzione per ottenere il nostro output che rende la funzione chiamante una funzione inline.

Dai un'occhiata al seguente esempio.

fun main(args: Array<String>) {
   val mylambda:(String)->Unit  = {s:String->print(s)}
   val v:String = "TutorialsPoint.com"
   myFun(v,mylambda) //passing lambda as a parameter of another function 
}
fun myFun(a :String, action: (String)->Unit) { //passing lambda 
   print("Heyyy!!!")
   action(a)// call to lambda function
}

La parte di codice precedente produrrà il seguente output nel browser. Usando la funzione inline, abbiamo passato un lambda come parametro. Qualsiasi altra funzione può essere resa una funzione inline utilizzando la parola chiave "inline".

Heyyy!!!TutorialsPoint.com