Sobes.tech
Junior

Quelles fonctions auxiliaires connaissez-vous ou avez-vous utilisées dans votre expérience?

sobes.tech IA

Réponse de l'IA

  • Expressions lambda : Réduisent le code pour de petites fonctions gestionnaires, comme les clics ou callbacks.

  • Fonctions d'extension (Kotlin) : Ajoutent de nouvelles fonctions aux classes existantes sans héritage, améliorant la lisibilité et la commodité.

    fun String.isPalindrome(): Boolean {
        // Vérifie si la chaîne est un palindrome
        return this == this.reversed()
    }
    
  • Fonctions inline (Kotlin) : Intègrent le corps de la fonction à l'endroit de l'appel, réduisant la surcharge de création d'objet de fonction, particulièrement utile avec les lambdas.

    inline fun measureExecutionTime(block: () -> Unit) {
        // Mesure le temps d'exécution du bloc de code
        val startTime = System.currentTimeMillis()
        block()
        val endTime = System.currentTimeMillis()
        println("Temps d'exécution : ${endTime - startTime} ms")
    }
    
  • Classes de données (Kotlin) : Génèrent automatiquement equals(), hashCode(), toString(), copy(), pratique pour stocker des données.

    data class User(val name: String, val age: Int)
    
  • Classes scellées (Kotlin) : Représentent une hiérarchie limitée de classes, utiles pour modéliser des états ou événements, surtout en combinaison avec when.

  • Génériques : Permettent de créer des composants réutilisables fonctionnant avec différents types de données.

    public class Box<T> {
        // Classe générique pour stocker tout type de données
        private T data;
    
        public void setData(T data) {
            this.data = data;
        }
    
        public T getData() {
            return data;
        }
    }
    
  • Opérations sur collections (map, filter, reduce, etc.) : Méthodes fonctionnelles pour traiter des collections de données.

    val numbers = listOf(1, 2, 3, 4, 5)
    val squaredEvenNumbers = numbers
        .filter { it % 2 == 0 } // Filtre les pairs
        .map { it * it }      // Met au carré
    
  • Getters de ressources (Kotlin) : Pour obtenir des chaînes, couleurs, tailles, etc., à partir des ressources.

    val appName = context.getString(R.string.app_name)
    val primaryColor = ContextCompat.getColor(context, R.color.colorPrimary)
    
  • Types nullable et appels sécurisés (Kotlin) : Réduisent le nombre de NullPointerException.

    val name: String? = null
    val length = name?.length ?: 0 // Appel sécurisé et opérateur Elvis