В тази статия ще научите за функциите; какви са функциите, неговият синтаксис и как да създадете потребителска функция в Kotlin.
При програмирането функцията е група свързани изрази, които изпълняват определена задача.
Функциите се използват за разбиване на голяма програма на по-малки и модулни парчета. Например трябва да създадете и оцветите кръг въз основа на въведеното от потребителя. Можете да създадете две функции за решаване на този проблем:
createCircle()
ФункцияcolorCircle()
Функция
Разделянето на сложна програма на по-малки компоненти прави нашата програма по-организирана и управляема.
Освен това избягва повторението и прави кода за многократна употреба.
Видове функции
В зависимост от това дали дадена функция е дефинирана от потребителя или е налична в стандартната библиотека, има два типа функции:
- Стандартна библиотечна функция на Kotlin
- Дефинирани от потребителя функции
Стандартна библиотечна функция на Kotlin
Стандартните библиотечни функции са вградени функции в Kotlin, които са лесно достъпни за използване. Например,
print()
е функция на библиотеката, която отпечатва съобщение към стандартния изходен поток (монитор).sqrt()
връща квадратен корен от число (Double
стойност)
fun main(args: Array) ( var number = 5.5 print("Result = $(Math.sqrt(number))") )
Когато стартирате програмата, изходът ще бъде:
Резултат = 2.345207879911715
Ето връзка към Стандартната библиотека на Kotlin, която можете да разгледате.
Потребителски дефинирани функции
Както споменахме, можете сами да създавате функции. Такива функции се наричат дефинирани от потребителя функции.
Как да създам дефинирана от потребителя функция в Kotlin?
Преди да можете да използвате (извикате) функция, трябва да я дефинирате.
Ето как можете да определите функция в Kotlin:
fun callMe () (// тяло на функцията)
За да се определи функция в Kotlin, fun
се използва ключова дума. След това идва името на функцията (идентификатор). Тук името на функцията е callMe.
В горната програма скобите ( )
са празни. Това означава, че тази функция не приема никакъв аргумент. Ще научите за аргументите по-късно в тази статия.
Кодовете във фигурните скоби ( )
са тялото на функцията.
Как да извикам функция?
Трябва да извикате функцията, за да изпълнява кодове в тялото на функцията. Ето как:
обади ми се()
Този оператор извиква callMe()
функцията, декларирана по-рано.
Пример: Проста функционална програма
fun callMe() ( println("Printing from callMe() function.") println("This is cool (still printing from inside).") ) fun main(args: Array) ( callMe() println("Printing outside from callMe() function.") )
Когато стартирате програмата, изходът ще бъде:
Печат от функцията callMe (). Това е страхотно (все още се печата отвътре). Отпечатване отвън от функцията callMe ().
Най- callMe()
функцията в горния код не приема аргумент.
Също така функцията не връща никаква стойност (типът на връщане е Unit
).
Да вземем друг пример за функция. Тази функция ще приема аргументи и също така връща стойност.
Пример: Добавете две числа с помощта на функция
fun addNumbers(n1: Double, n2: Double): Int ( val sum = n1 + n2 val sumInteger = sum.toInt() return sumInteger ) fun main(args: Array) ( val number1 = 12.2 val number2 = 3.4 val result: Int result = addNumbers(number1, number2) println("result = $result") )
Когато стартирате програмата, изходът ще бъде:
резултат = 15
Как работят функциите с аргументи и върната стойност?
Тук два аргумента от тип1 и номер2 Double
се предават на addNumbers()
функцията по време на извикване на функция. Тези аргументи се наричат действителни аргументи.
резултат = addNumbers (число1, число2)
Параметрите n1 и n2 приемат предадените аргументи (в дефиницията на функцията). Тези аргументи се наричат формални аргументи (или параметри).
В Kotlin аргументите се разделят с помощта на запетаи. Също така, типът на официалния аргумент трябва да бъде изрично въведен.
Имайте предвид, че типът данни на действителните и официалните аргументи трябва да съвпадат, т.е. типът на данните на първия действителен аргумент трябва да съвпада с типа на първия официален аргумент. По същия начин, типът на втория действителен аргумент трябва да съвпада с типа на втория формален аргумент и т.н.
Тук,
return sumInteger
е изявлението за връщане. Този код прекратява addNumbers()
функцията и контролът върху програмата преминава към main()
функцията.
В програмата sumInteger се връща от addNumbers()
функцията. Тази стойност се присвоява на променливата резултат.
Забележете,
- и sumInteger, и резултатът са от тип
Int
. - типът на връщане на функцията е посочен в дефиницията на функцията.
// типът на връщане е Int fun addNumbers (n1: Double, n2: Double): Int (…)
Ако функцията не връща никаква стойност, нейният тип на връщане е Unit
. Не е задължително да се указва типа на връщане в дефиницията на функцията, ако типът на връщане е Unit
.
Пример: Показване на име чрез използване на функция
fun main(args: Array) ( println(getName("John", "Doe")) ) fun getName(firstName: String, lastName: String): String = "$firstName $lastName"
Когато стартирате програмата, изходът ще бъде:
Джон Доу
Тук getName()
функцията взема два String
аргумента и връща a String
.
Можете да пропуснете фигурните скоби ( )
на тялото на функцията и да посочите тялото след =
символ, ако функцията връща един израз (като горния пример).
Не е задължително да се декларира изрично типа връщане в такъв случай, тъй като типът връщане може да бъде изведен от компилатора. В горния пример можете да замените
забавно getName (firstName: String, lastName: String): String = "$ firstName $ lastName"
с
fun getName (firstName: String, lastName: String) = "$ firstName $ lastName"
Това е само краткото въведение във функциите в Kotlin. Препоръчани статии, свързани с функции:
- Вградени функции на Kotlin
- Kotlin infix функции
- Обхват на функцията Kotlin
- Котлин по подразбиране и именувани аргументи
- Котлин Рекурсия
- Рекурсивна функция Kotlin Tail
- Функция за удължаване на Kotlin
- Функции от висок ред на Kotlin и Lambdas