Kotlin-functie (met voorbeeld)

Inhoudsopgave

In dit artikel leert u over functies; welke functies zijn, de syntaxis en hoe je een gebruikersfunctie in Kotlin kunt maken.

Bij het programmeren is functie een groep verwante instructies die een specifieke taak uitvoeren.

Functies worden gebruikt om een ​​groot programma op te splitsen in kleinere en modulaire brokken. U moet bijvoorbeeld een cirkel maken en kleuren op basis van invoer van de gebruiker. U kunt twee functies maken om dit probleem op te lossen:

  • createCircle() Functie
  • colorCircle() Functie

Door een complex programma op te splitsen in kleinere onderdelen, wordt ons programma overzichtelijker en beter beheersbaar.

Bovendien vermijdt het herhaling en maakt het code herbruikbaar.

Soorten functies

Afhankelijk van of een functie door de gebruiker is gedefinieerd of beschikbaar is in de standaardbibliotheek, zijn er twee soorten functies:

  • Kotlin Standard Library-functie
  • Door de gebruiker gedefinieerde functies

Kotlin Standard Library-functie

De standaard bibliotheekfuncties zijn ingebouwde functies in Kotlin die direct beschikbaar zijn voor gebruik. Bijvoorbeeld,

  • print() is een bibliotheekfunctie die berichten afdrukt naar de standaard uitvoerstroom (monitor).
  • sqrt()geeft de vierkantswortel van een getal terug ( Doublewaarde)
 fun main(args: Array) ( var number = 5.5 print("Result = $(Math.sqrt(number))") )

Wanneer u het programma uitvoert, is de uitvoer:

 Resultaat = 2.345207879911715

Hier is een link naar de Kotlin-standaardbibliotheek die u kunt verkennen.

Door de gebruiker gedefinieerde functies

Zoals gezegd kunt u zelf functies aanmaken. Dergelijke functies worden door de gebruiker gedefinieerde functies genoemd.

Hoe maak je een door de gebruiker gedefinieerde functie in Kotlin?

Voordat u een functie kunt gebruiken (aanroepen), moet u deze eerst definiëren.

Hier leest u hoe u een functie in Kotlin kunt definiëren:

 fun callMe () (// functie body) 

Om een ​​functie in Kotlin te definiëren, wordt een funtrefwoord gebruikt. Dan komt de naam van de functie (identifier). Hier is de naam van de functie callMe.

In het bovenstaande programma is het haakje ( )leeg. Dit betekent dat deze functie geen enkel argument accepteert. Later in dit artikel leert u over argumenten.

De codes tussen accolades ( )zijn de hoofdtekst van de functie.

Hoe een functie aanroepen?

U moet de functie aanroepen om codes in de hoofdtekst van de functie uit te voeren. Hier is hoe:

 bel mij()

Deze instructie roept de callMe()functie aan die eerder is gedeclareerd.

Voorbeeld: eenvoudig functieprogramma

 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.") )

Wanneer u het programma uitvoert, is de uitvoer:

Afdrukken vanuit de functie callMe (). Dit is cool (nog steeds printen van binnenuit). Buiten afdrukken vanuit de functie callMe ().

De callMe()functie in de bovenstaande code accepteert geen enkel argument.

Ook retourneert de functie geen enkele waarde (retourtype is Unit).

Laten we een ander functievoorbeeld nemen. Deze functie accepteert argumenten en retourneert ook een waarde.

Voorbeeld: voeg twee nummers toe met behulp van de functie

 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") )

Wanneer u het programma uitvoert, is de uitvoer:

 resultaat = 15

Hoe werken functies met argumenten en retourwaarde?

Hier worden twee argumenten nummer1 en nummer2 van het type Doubledoorgegeven aan de addNumbers()functie tijdens de functieaanroep. Deze argumenten worden feitelijke argumenten genoemd.

 result = addNumbers (getal1, getal2)

De parameters n1 en n2 accepteren de doorgegeven argumenten (in de functiedefinitie). Deze argumenten worden formele argumenten (of parameters) genoemd.

In Kotlin, arguments are separated using commas. Also, the type of the formal argument must be explicitly typed.

Note that, the data type of actual and formal arguments should match, i.e., the data type of first actual argument should match the type of first formal argument. Similarly, the type of second actual argument must match the type of second formal argument and so on.

Here,

 return sumInteger

is the return statement. This code terminates the addNumbers() function, and control of the program jumps to the main() function.

In the program, sumInteger is returned from addNumbers() function. This value is assigned to the variable result.

Notice,

  • both sumInteger and result are of type Int.
  • the return type of the function is specified in the function definition.
     // return type is Int fun addNumbers(n1: Double, n2: Double): Int (… )

If the function doesn't return any value, its return type is Unit. It is optional to specify the return type in the function definition if the return type is Unit.

Example: Display Name by Using Function

 fun main(args: Array) ( println(getName("John", "Doe")) ) fun getName(firstName: String, lastName: String): String = "$firstName $lastName"

When you run the program, the output will be:

 John Doe

Here, the getName() function takes two String arguments, and returns a String.

You can omit the curly braces ( ) of the function body and specify the body after = symbol if the function returns a single expression (like above example).

It is optional to explicitly declare the return type in such case because the return type can be inferred by the compiler. In the above example, you can replace

 fun getName (firstName: String, lastName: String): String = "$ firstName $ lastName"

met

 fun getName (firstName: String, lastName: String) = "$ firstName $ lastName" 

Dit is slechts de korte introductie van functies in Kotlin. Aanbevolen artikelen met betrekking tot functies:

  • Kotlin inline-functies
  • Kotlin infix-functies
  • Kotlin-functiebereik
  • Kotlin Default en Named Arguments
  • Kotlin-recursie
  • Kotlin Tail Recursieve functie
  • Kotlin-uitbreidingsfunctie
  • Kotlin High-Order Functies & Lambda's

Interessante artikelen...