Sobes.tech
Junior

Ce funcții auxiliare cunoști sau ai folosit în experiența ta?

sobes.tech AI

Răspuns de la AI

  • Expresii lambda: Reducă codul pentru funcții mici, cum ar fi gestionarea clicurilor sau callback-uri.

  • Funcții de extensie (Kotlin): Adaugă funcții noi claselor existente fără moștenire, îmbunătățind lizibilitatea și comoditatea.

    fun String.isPalindrome(): Boolean {
        // Verifică dacă șirul este palindrom
        return this == this.reversed()
    }
    
  • Funcții inline (Kotlin): Inserează corpul funcției în locul apelului, reducând costurile de overhead pentru crearea obiectelor de funcție, util mai ales cu lambdas.

    inline fun measureExecutionTime(block: () -> Unit) {
        // Măsoară timpul de execuție al blocului de cod
        val startTime = System.currentTimeMillis()
        block()
        val endTime = System.currentTimeMillis()
        println("Timp de execuție: ${endTime - startTime} ms")
    }
    
  • Clase de date (Kotlin): Generează automat equals(), hashCode(), toString(), copy(), util pentru stocarea datelor.

    data class User(val name: String, val age: Int)
    
  • Clase sigilate (Kotlin): Reprezintă o ierarhie limitată de clase, utile pentru modelarea stărilor sau evenimentelor, mai ales în combinație cu when.

  • Generice: Permite crearea de componente reutilizabile care funcționează cu diferite tipuri de date.

    public class Box<T> {
        // Clasă generică pentru stocarea oricărui tip de date
        private T data;
    
        public void setData(T data) {
            this.data = data;
        }
    
        public T getData() {
            return data;
        }
    }
    
  • Operații cu colecții (map, filter, reduce și altele): Metode funcționale pentru procesarea colecțiilor de date.

    val numbers = listOf(1, 2, 3, 4, 5)
    val squaredEvenNumbers = numbers
        .filter { it % 2 == 0 } // Filtrează pare
        .map { it * it }      // Ridică la pătrat
    
  • Getteri de resurse (Kotlin): Pentru obținerea de șiruri, culori, dimensiuni etc. din resurse.

    val appName = context.getString(R.string.app_name)
    val primaryColor = ContextCompat.getColor(context, R.color.colorPrimary)
    
  • Tipuri nullable și apeluri sigure (Kotlin): Reduc numărul de NullPointerException.

    val name: String? = null
    val length = name?.length ?: 0 // Apel sigur și operator Elvis