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