Учебники

Котлин — Функции

Котлин является языком статической типизации, поэтому функции играют в нем большую роль. Мы довольно хорошо знакомы с функцией, так как мы используем функцию во всех примерах. Функция объявлена ​​с ключевым словом «весело». Как и любой другой ООП, он также нуждается в типе возврата и списке аргументов опции.

В следующем примере мы определяем функцию MyFunction, а из основной функции мы вызываем эту функцию и передаем некоторый аргумент.

Live Demo

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

Приведенный выше фрагмент кода выдаст следующий вывод в браузере.

Hey!! Welcome To ---tutorialsPoint.com

Функция должна быть объявлена ​​следующим образом:

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

Ниже приведены некоторые из различных типов функций, доступных в Kotlin.

Лямбда-функция

Лямбда — это функция высокого уровня, которая значительно сокращает код пластины котла, одновременно объявляя и определяя функцию. Kotlin позволяет вам определить свою собственную лямбду. В Kotlin вы можете объявить свою лямбду и передать эту лямбду в функцию.

Посмотрите на следующий пример.

Live Demo

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

В приведенном выше коде мы создали нашу собственную лямбду, известную как «mylambda», и мы передали одну переменную в эту лямбда, которая имеет тип String и содержит значение «TutorialsPoint.com».

Приведенный выше фрагмент кода выдаст следующий вывод в браузере.

TutorialsPoint.com

Встроенная функция

Приведенный выше пример показывает основные лямбда-выражения, которые мы можем использовать в приложении Kotlin. Теперь мы можем передать лямбду другой функции, чтобы получить наш вывод, который делает вызывающую функцию встроенной функцией.

Посмотрите на следующий пример.

Live Demo

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
}

Приведенный выше фрагмент кода выдаст следующий вывод в браузере. Используя встроенную функцию, мы передали лямбду в качестве параметра. Любую другую функцию можно сделать встроенной функцией, используя ключевое слово «inline».