Котлин является языком статической типизации, поэтому функции играют в нем большую роль. Мы довольно хорошо знакомы с функцией, так как мы используем функцию во всех примерах. Функция объявлена с ключевым словом «весело». Как и любой другой ООП, он также нуждается в типе возврата и списке аргументов опции.
В следующем примере мы определяем функцию MyFunction, а из основной функции мы вызываем эту функцию и передаем некоторый аргумент.
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 вы можете объявить свою лямбду и передать эту лямбду в функцию.
Посмотрите на следующий пример.
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. Теперь мы можем передать лямбду другой функции, чтобы получить наш вывод, который делает вызывающую функцию встроенной функцией.
Посмотрите на следующий пример.
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».