Kā raksturo Kotlin funkcijas?
sobes.tech AI
Atbilde no AI
Funkcijas deklarē, izmantojot atslēgas vārdu fun, kam seko funkcijas nosaukums, parametru saraksts iekavās (neobligāti), divpunkti un atgriešanas tips (neobligāti). Funkcijas ķermenis ir iekavās. Ja atgriešanas tips nav norādīts, funkcija atgriež Unit (līdzvērtīgs void citās valodās).
// Funkcija bez parametriem un atgriešanas vērtības
fun greet() {
println("Hello!")
}
// Funkcija ar parametriem
fun add(x: Int, y: Int): Int {
return x + y
}
// Funkcija ar vienu izteiksmi (saīsināta ķermeņa sintakse)
fun multiply(a: Int, b: Int) = a * b
Funkcijas parametri tiek deklarēti formātā vārds:Tips. Var norādīt noklusējuma vērtības:
fun sendMessage(message: String, sender: String = "Unknown") {
println("$sender: $message")
}
Funkcijas var tikt deklarētas augšējā līmenī vai kā klases, objektu vai interfeisa locekļi:
-
Top-level funkcijas: Deklarētas ārpus klases:
fun calculateArea(radius: Double): Double { return Math.PI * radius * radius } -
Lietas funkcijas: Deklarētas klases iekšpusē:
class MyClass { fun doSomething() { println("Doing something.") } } -
Paplašināšanas funkcijas: Ļauj "pievienot" funkcijas esošajām klasēm bez to sākotnējā koda izmaiņām:
fun String.reverseAndUpperCase(): String { return this.reversed().toUpperCase() }
Lambdas un anonīmas funkcijas ir funkciju literāli, kurus var nodot kā argumentus vai piešķirt mainīgajiem:
val sum: (Int, Int) -> Int = { x, y -> x + y }
val greeting = { name: String -> "Hello, $name!" }
Augstākā līmeņa funkcijas pieņem funkcijas kā parametrus vai atgriež 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 }) // rezultāts = 15
Funkciju pārklāšana (ar vienādu nosaukumu, bet dažādām parakstām) tiek automātiski atbalstīta:
fun printInfo(name: String) {
println("Name: $name")
}
fun printInfo(age: Int) {
println("Age: $age")
}