Sobes.tech
Junior — Middle

Kokias scope funkcijas Kotlin žinai?

sobes.tech AI

Atsakymas iš AI

Kotlin'e yra keletas apimties funkcijų (scope functions), kurios leidžia atlikti operacijas su objektu tam tikrame kontekste. Pagrindinės:

  • let — vykdo kodo bloką su objektu kaip argumentu it ir grąžina bloko rezultatą. Dažnai naudojama saugiai dirbti su nullable.

    val name: String? = "Kotlin"
    name?.let {
        println("Vardo ilgis: ${it.length}")
    }
    
  • run — vykdo kodo bloką su objektu kaip this ir grąžina bloko rezultatą. Naudinga inicializacijai ir skaičiavimams.

    val result = "Hello".run {
        println(this)
        length
    }
    
  • with — panaši į run, bet kviečiama kaip funkcija su objektu kaip parametru ir grąžina bloko rezultatą.

    val builder = StringBuilder()
    val result = with(builder) {
        append("Hello")
        append(" World")
        toString()
    }
    
  • apply — vykdo bloką su objektu kaip this ir grąžina patį objektą. Dažnai naudojama objektų konfigūravimui.

    val person = Person().apply {
        name = "John"
        age = 30
    }
    
  • also — vykdo bloką su objektu kaip it ir grąžina patį objektą. Naudojama papildomoms veikloms, pvz., logavimui.

    val numbers = mutableListOf(1, 2, 3).also {
        println("Sąrašas: $it")
    }
    

Kiekviena funkcija skiriasi tuo, kaip perduoda objektą lambda (this arba it) ir ką grąžina (bloko rezultatą ar patį objektą).