Sobes.tech
Junior

Ce este un bloc 'run' în Kotlin și cum se utilizează?

sobes.tech AI

Răspuns de la AI

Blocul run în Kotlin este o funcție de scope încorporată în biblioteca standard Kotlin. Este utilizată pentru:

  1. Executarea unui bloc de cod pe un obiect: Este apelat pe un obiect și execută o expresie lambda furnizată ca argument. În interiorul lambda-ului, obiectul este disponibil ca this.
  2. Returnarea unui rezultat: Returnează rezultatul ultimei expresii din lambda.
  3. Obiecte nullable: Este util pentru lucrul cu obiecte nullable, deoarece utilizând operatorul de apel sigur ?., blocul run va fi executat doar dacă obiectul nu este null.

Caracteristici principale:

  • Receptor (this): Obiectul pe care se apelează run este disponibil în lambda ca this.
  • Valoarea de returnare: Rezultatul ultimei expresii din lambda.

Exemple de utilizare:

// Exemplu 1: executarea codului pe un obiect și returnarea rezultatului
val length: Int = "some string".run {
    // 'this' aici se referă la "some string"
    println("Lungimea șirului: ${this.length}")
    length // Returnează lungimea șirului
}
// Exemplu 2: lucru cu un obiect nullable
val nullableString: String? = "another string"
val upperCaseString: String? = nullableString?.run {
    // Blocul se va executa doar dacă nullableString nu este null
    toUpperCase() // Returnează șirul în majuscule
}

val anotherNullableString: String? = null
val anotherUpperCaseString: String? = anotherNullableString?.run {
    // Blocul nu se va executa, run?. va returna null
    toUpperCase()
}
// Exemplu 3: crearea și configurarea unui obiect
val person = run {
    val name = "Alice"
    val age = 30
    Person(name, age) // Se presupune că clasa Person există
}