Функция Kotlin (с пример)

Съдържание

В тази статия ще научите за функциите; какви са функциите, неговият синтаксис и как да създадете потребителска функция в 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

Интересни статии...