Kotlin - Funções

Kotlin é uma linguagem de tipo estático, portanto, as funções desempenham um grande papel nela. Estamos bastante familiarizados com a função, pois a usamos em todos os exemplos. A função é declarada com a palavra-chave “diversão”. Como qualquer outro OOP, ele também precisa de um tipo de retorno e uma lista de argumentos de opção.

No exemplo a seguir, estamos definindo uma função chamada MyFunction e da função principal estamos chamando esta função e passando alguns argumentos.

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

O trecho de código acima produzirá a seguinte saída no navegador.

Hey!! Welcome To ---tutorialsPoint.com

A função deve ser declarada da seguinte forma -

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

A seguir estão alguns dos diferentes tipos de função disponíveis no Kotlin.

Função Lambda

Lambda é uma função de alto nível que reduz drasticamente o código do boiler plate enquanto declara uma função e a define. Kotlin permite que você defina seu próprio lambda. Em Kotlin, você pode declarar seu lambda e passá-lo para uma função.

Dê uma olhada no exemplo a seguir.

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

No código acima, criamos nosso próprio lambda conhecido como “mylambda” e passamos uma variável para este lambda, que é do tipo String e contém um valor “TutorialsPoint.com”.

O trecho de código acima produzirá a seguinte saída no navegador.

TutorialsPoint.com

Função Inline

O exemplo acima mostra o básico da expressão lambda que podemos usar no aplicativo Kotlin. Agora, podemos passar um lambda para outra função para obter nossa saída, o que torna a função de chamada uma função embutida.

Dê uma olhada no exemplo a seguir.

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
}

O trecho de código acima produzirá a seguinte saída no navegador. Usando a função embutida, passamos um lambda como parâmetro. Qualquer outra função pode ser transformada em função inline usando a palavra-chave “inline”.

Heyyy!!!TutorialsPoint.com