Sobes.tech
Junior — Middle

Ի՞նչ scope ֆունկցիաներ գիտես Kotlin-ում։

sobes.tech AI

Պատասխան AI-ից

Kotlin-ում կան մի քանի շրջանակային (scope functions), որոնք թույլ են տալիս կատարել գործողություններ օբյեկտի հետ որոշ կոնտեքստում: Հիմնականներն են՝

  • let — իրականացնում է կոդի բլոկ օբյեկտով որպես it արգումենտ և վերադարձնում բլոկի արդյունքը: Օգտագործվում է հաճախ nullable-ների անվտանգ աշխատանքի համար:

    val name: String? = "Kotlin"
    name?.let {
        println("Անվան երկարությունը: ${it.length}")
    }
    
  • run — իրականացնում է կոդի բլոկ օբյեկտով որպես this և վերադարձնում բլոկի արդյունքը: Օգտակար է ինիցիալիզացիայի և հաշվարկների համար:

    val result = "Hello".run {
        println(this)
        length
    }
    
  • with — նման է run, բայց կանչվում է որպես ֆունկցիա օբյեկտով որպես պարամետր և վերադարձնում բլոկի արդյունքը:

    val builder = StringBuilder()
    val result = with(builder) {
        append("Hello")
        append(" World")
        toString()
    }
    
  • apply — իրականացնում է բլոկ օբյեկտով որպես this և վերադարձնում է ինքնին օբյեկտը: Օգտագործվում է հաճախ օբյեկտների կոնֆիգուրացիայի համար:

    val person = Person().apply {
        name = "John"
        age = 30
    }
    
  • also — իրականացնում է բլոկ օբյեկտով որպես it և վերադարձնում է ինքնին օբյեկտը: Օգտագործվում է լրացուցիչ գործողությունների համար, օրինակ՝ լոգավորում:

    val numbers = mutableListOf(1, 2, 3).also {
        println("Ցանկ: $it")
    }
    

Յուրաքանչյուր ֆունկցիա տարբեր է այն կերպ, ինչպես է փոխանցում օբյեկտը լամբդային (this կամ it) և ինչ է վերադարձնում (բլոկի արդյունքը կամ ինքնին օբյեկտը):