Kotlin-də funksiyalar necə təsvir olunur?
sobes.tech Süni İntellekt
AI-dan cavab
Funksiyalar fun açar sözü istifadə edilərək elan edilir, funksiyanın adı, mövcudsa, parametrlər siyahısı, iki nöqtə və geri dönüş tipi (mövcudsa) ilə davam edir. Funksiya bədəni mötərizələr içində yerləşir. Əgər geri dönüş tipi atılırsa, funksiya Unit qaytarır (digər dillərdə void-a bərabər).
// Parametrlər və geri dönüş dəyəri olmayan funksiya
fun greet() {
println("Hello!")
}
// Parametrlərlə funksiya
fun add(x: Int, y: Int): Int {
return x + y
}
// Bir ifadəli funksiya (qısaldılmış sintaksis)
fun multiply(a: Int, b: Int) = a * b
Funksiya parametrləri adParametr: Tip formatında elan edilir. Standart dəyərlər təyin etmək mümkündür.
fun sendMessage(message: String, sender: String = "Unknown") {
println("$sender: $message")
}
Funksiyalar faylın yuxarı səviyyəsində və ya siniflər, obyektlər və ya interfeyslərin üzvləri kimi elan edilə bilər.
-
Yuxarı səviyyəli funksiyalar: Siniflərdən kənarda elan edilir.
fun calculateArea(radius: Double): Double { return Math.PI * radius * radius } -
Üzv funksiyalar: Siniflər daxilində elan edilir.
class MyClass { fun doSomething() { println("Doing something.") } } -
Genişləndirmə funksiyaları: Mövcud siniflərə funksiyalar əlavə etməyə imkan verir, onların mənbə kodunu dəyişmədən.
fun String.reverseAndUpperCase(): String { return this.reversed().toUpperCase() }
Lambda ifadələri və anonim funksiyalar funksional litralar olub, arqument kimi ötürülə və ya dəyişənlərə təyin oluna bilər.
val sum: (Int, Int) -> Int = { x, y -> x + y }
val greeting = { name: String -> "Hello, $name!" }
Yüksək səviyyəli funksiyalar funksiyaları arqument kimi qəbul edir və ya funksiyalar qaytarır.
fun operate(a: Int, b: Int, operation: (Int, Int) -> Int): Int {
return operation(a, b)
}
val result = operate(5, 3, { x, y -> x * y }) // nəticə = 15
Funksiya yükləməsi (eyni adda, lakin fərqli imzalarla funksiyalar) avtomatik dəstəklənir.
fun printInfo(name: String) {
println("Name: $name")
}
fun printInfo(age: Int) {
println("Age: $age")
}