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