Junior
Kotlin-də 'with' və 'let' funksiyalarından necə istifadə ediləcəyini izah edin.
sobes.tech Süni İntellekt
AI-dan cavab
with və let Kotlin-in standart kitabxana funksiyalarıdır və obyektlərlə daha rahat işləmək üçün nəzərdə tutulmuşdur, xüsusən eyni obyekt üzərində bir neçə əməliyyat həyata keçirərkən.
with
withobyekt (alıcı) və lambda qəbul edir.- Lambda daxilində
thisalıcı obyektə istinad edir. - Lambda daxilindəki son ifadənin nəticəsini qaytarır.
// with istifadə nümunəsi
class Person(var name: String, var age: Int)
fun main() {
val person = Person("Alice", 30)
val description = with(person) {
// this, person-a istinad edir
this.age += 1 // İstisna deyil
"Name: $name, New age: $age" // Bu string qaytarılır
}
println(description) // Nəticə: Name: Alice, New age: 31
}
Eyni obyekt üzərində bir neçə əməliyyat etmək lazım olduqda istifadə olunur, obyektin özünü geri qaytarmadan. Ob'ektin konfiqurasiyası üçün əlverişlidir.
let
letobyekt (alıcı) üzərində genişlənmə funksiyası kimi çağırılır və lambda qəbul edir.- Lambda daxilində
it(və ya istifadəçi tərəfindən təyin olunmuş ad) obyektə istinad edir. - Lambda daxilindəki son ifadənin nəticəsini qaytarır.
// let istifadə nümunəsi
fun main() {
val name: String? = "Bob"
val length = name?.let {
// it, name-ə istinad edir
println("Ad null deyil: $it")
it.length // String-in uzunluğunu qaytarır
}
println("Uzunluq: $length") // Nəticə: Ad null deyil: Bob, Uzunluq: 3
val nullName: String? = null
val lengthOfNull = nullName?.let {
// Bu blok icra olunmayacaq, çünki nullName null
it.length
}
println("Null-un uzunluğu: $lengthOfNull") // Nəticə: Null-un uzunluğu: null
}
let null olmayan obyektlər üzərində əməliyyatlar aparmaq və ya yeni lokal scope yaratmaq üçün istifadə olunur (?.let ilə). Həmçinin, obyekt üzərində yeni yerli dəyişən sahəsi yaratmaq üçün də istifadə edilir (it).
Əsas fərqlər:
- Çağırış üsulu:
withfunksiyası kimi çağırılır,letgenişlənmə funksiyası kimi. - Lambda daxilində referens dəyişəni:
withthisistifadə edir,letitistifadə edir (və ya istifadəçi tərəfindən təyin olunmuş ad). - Əsas məqsəd:
withəsasən obyektin konfiqurasiyası üçün istifadə olunur,letisə potensial null obyektlər üzərində əməliyyatlar və lokal scope yaratmaq üçün.
with |
let |
|
|---|---|---|
| Çağırış | Funksiya: with(ob'ekt) { ... } |
Genişlənmə funksiyası: ob'ekt.let { ... } |
| Referans | this |
it (və ya istifadəçi tərəfindən təyin olunmuş ad) |
| Qaytarır | Lambda daxilindəki son ifadənin nəticəsi | Lambda daxilindəki son ifadənin nəticəsi |
| Əsas istifadə | Ob'ektin konfiqurasiyası, əməliyyatların qruplaşdırılması | Null yoxlaması (?.let), lokal scope |