Sobes.tech
Junior

Quali funzioni ausiliarie conosci o hai utilizzato nella tua esperienza?

sobes.tech AI

Risposta dell'AI

  • Lambda espressioni: Accorciano il codice per funzioni di gestione di piccole dimensioni, come clic o callback.

  • Funzioni di estensione (Kotlin): Aggiungono nuove funzioni alle classi esistenti senza ereditarietà, migliorando leggibilità e praticità.

    fun String.isPalindrome(): Boolean {
        // Controlla se la stringa è un palindromo
        return this == this.reversed()
    }
    
  • Funzioni inline (Kotlin): Inseriscono il corpo della funzione nel punto della chiamata, riducendo i costi di overhead per la creazione di oggetti funzione, utile con lambda.

    inline fun measureExecutionTime(block: () -> Unit) {
        // Misura il tempo di esecuzione del blocco di codice
        val startTime = System.currentTimeMillis()
        block()
        val endTime = System.currentTimeMillis()
        println("Tempo di esecuzione: ${endTime - startTime} ms")
    }
    
  • Classi dati (Kotlin): Generano automaticamente equals(), hashCode(), toString(), copy(), utile per memorizzare dati.

    data class User(val name: String, val age: Int)
    
  • Classi sigillate (Kotlin): Rappresentano una gerarchia limitata di classi, utili per modellare stati o eventi, specialmente in combinazione con when.

  • Generics: Permettono di creare componenti riutilizzabili che lavorano con diversi tipi di dati.

    public class Box<T> {
        // Classe generica per memorizzare qualsiasi tipo di dato
        private T data;
    
        public void setData(T data) {
            this.data = data;
        }
    
        public T getData() {
            return data;
        }
    }
    
  • Operazioni con collezioni (map, filter, reduce, ecc.): Metodi funzionali per elaborare collezioni di dati.

    val numbers = listOf(1, 2, 3, 4, 5)
    val squaredEvenNumbers = numbers
        .filter { it % 2 == 0 } // Filtra i pari
        .map { it * it }      // Eleva al quadrato
    
  • Getters di risorse (Kotlin): Per ottenere stringhe, colori, dimensioni, ecc., dalle risorse.

    val appName = context.getString(R.string.app_name)
    val primaryColor = ContextCompat.getColor(context, R.color.colorPrimary)
    
  • Tipi nullable e chiamate sicure (Kotlin): Riducano il numero di NullPointerException.

    val name: String? = null
    val length = name?.length ?: 0 // Chiamata sicura e operatore Elvis