Hogyan írjuk le a függvényeket Kotlinben?
sobes.tech MI
Válasz az MI-től
A függvényeket a fun kulcsszóval deklarálják, amelyet a függvény neve követ, majd opcionálisan paraméterek listája zárójelek között, kettőspont és a visszatérési típus (szintén opcionális). A függvény törzse kapcsos zárójelek között található. Ha a visszatérési típus el van hagyva, a függvény Unit-ot ad vissza (ami más nyelveken a void megfelelője).
// Paraméter nélküli és visszatérési érték nélküli függvény
fun greet() {
println("Hello!")
}
// Paraméterekkel rendelkező függvény
fun add(x: Int, y: Int): Int {
return x + y
}
// Egy kifejezést tartalmazó rövidített szintaxis
fun multiply(a: Int, b: Int) = a * b
A függvény paraméterei a nevParaméter: Típus formátumban vannak deklarálva. Alapértelmezett értékek is megadhatók.
fun sendMessage(message: String, sender: String = "Unknown") {
println("$sender: $message")
}
A függvények a fájl felső szintjén vagy osztályok, objektumok vagy interfészek tagjaként is deklarálhatók.
-
Felső szintű függvények: Osztályokon kívül deklarálják őket.
fun calculateArea(radius: Double): Double { return Math.PI * radius * radius } -
Tagfüggvények: Osztályokon belül deklarálják őket.
class MyClass { fun doSomething() { println("Doing something.") } } -
Bővítési függvények: Lehetővé teszik, hogy "hozzáadjuk" a meglévő osztályokhoz a függvényeket anélkül, hogy módosítanánk a forráskódjukat.
fun String.reverseAndUpperCase(): String { return this.reversed().toUpperCase() }
A lambda kifejezések és névtelen függvények olyan funkcionális literálok, amelyeket argumentumként lehet átadni vagy változóknak lehet hozzárendelni.
val sum: (Int, Int) -> Int = { x, y -> x + y }
val greeting = { name: String -> "Hello, $name!" }
A magasabb rendű függvények fogadnak függvényeket paraméterként vagy adnak vissza függvényeket.
fun operate(a: Int, b: Int, operation: (Int, Int) -> Int): Int {
return operation(a, b)
}
val result = operate(5, 3, { x, y -> x * y }) // eredmény = 15
A függvény túlterhelés (azonos névvel, de különböző szignatúrákkal rendelkező függvények) automatikusan támogatott.
fun printInfo(name: String) {
println("Name: $name")
}
fun printInfo(age: Int) {
println("Age: $age")
}