Sobes.tech
Junior

Kotlin-də 'with' və 'let' funksiyalarından necə istifadə ediləcəyini izah edin.

sobes.tech Süni İntellekt

AI-dan cavab

withlet 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

  • with obyekt (alıcı) və lambda qəbul edir.
  • Lambda daxilində this alı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

  • let obyekt (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: with funksiyası kimi çağırılır, let genişlənmə funksiyası kimi.
  • Lambda daxilində referens dəyişəni: with this istifadə edir, let it istifadə 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, let isə 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