Sobes.tech
Junior — Middle

Кои функции за обхват (scope functions) в 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) и какво връща (резултата от блока или самия обект).