Kaip aprašyti funkcijas Kotlin?
sobes.tech AI
Atsakymas iš AI
Funkcijos deklaruojamos naudojant raktinį žodį fun, po kurio eina funkcijos pavadinimas, parametrų sąrašas skliausteliuose (neprivaloma), dvitaškis ir grąžinamas tipas (neprivaloma). Funkcijos kūnas yra apibrėžtas skliaustais. Jei grąžinamo tipo nėra, funkcija grąžina Unit (lygu void kituose kalbose).
// Funkcija be parametrų ir grąžinamosios reikšmės
fun greet() {
println("Hello!")
}
// Funkcija su parametrais
fun add(x: Int, y: Int): Int {
return x + y
}
// Funkcija su vienu išraiška (sutrumpinta kūno sintaksė)
fun multiply(a: Int, b: Int) = a * b
Funkcijos parametrai deklaruojami formatu pavadinimas:Tipas. Galima nurodyti numatytąsias reikšmes:
fun sendMessage(message: String, sender: String = "Unknown") {
println("$sender: $message")
}
Funkcijos gali būti deklaruotos viršutinio lygio faile arba kaip klasių, objektų ar sąsajų nariai:
-
Top-level funkcijos: Deklaruojamos už klasių ribų:
fun calculateArea(radius: Double): Double { return Math.PI * radius * radius } -
Narių funkcijos: Deklaruojamos klasių viduje:
class MyClass { fun doSomething() { println("Doing something.") } } -
Išplėstinės funkcijos: Leidžia "pridėti" funkcijas esamiems klasiams be jų originalaus kodo keitimo:
fun String.reverseAndUpperCase(): String { return this.reversed().toUpperCase() }
Lambda išraiškos ir anonimės funkcijos yra funkcijų literatai, kurie gali būti perduoti kaip argumentai arba priskirti kintamiesiems:
val sum: (Int, Int) -> Int = { x, y -> x + y }
val greeting = { name: String -> "Hello, $name!" }
Aukšto lygio funkcijos priima funkcijas kaip parametrus arba grąžina funkcijas:
fun operate(a: Int, b: Int, operation: (Int, Int) -> Int): Int {
return operation(a, b)
}
val result = operate(5, 3, { x, y -> x * y }) // rezultatas = 15
Funkcijų perkrovimas (skirtingos funkcijos su ta pačia vardu, bet skirtingomis parašomis) yra automatiškai palaikomas:
fun printInfo(name: String) {
println("Name: $name")
}
fun printInfo(age: Int) {
println("Age: $age")
}