Initialisation paresseuse des attributs
L’initialisation paresseuse permet d’initialiser l’attribut d’une classe uniquement lors de sa première utilisation.
Reprenons l’exemple précédent autour d’un chien et d’un tatouage pour illustrer ce nouveau concept. Le chien porte un nom dès sa naissance, mais cette fois le tatouage du chien doit se faire automatiquement lors de la première utilisation de l’attribut associé.
Pour mettre en place un tel scénario, il convient d’utiliser un concept du langage Kotlin que l’on appelle les delegates. Il s’agit de déclarer un attribut comme un attribut classique, mais de l’initialiser dans un bloc spécifique : by lazy { }, comme suit : Delegate by lazy
data class Dog(val name: String)
{
val tatoo by lazy { }
}
Un attribut déclaré à l’aide du mot-clé lateinit demande le mot-clé var tandis qu’un attribut déclaré à l’aide du bloc by lazy { } demande le mot-clé val.
Complétons l’initialisation de l’attribut tatoo en modifiant le contenu qui se trouve entre les accolades du bloc. Il est possible d’écrire autant d’instructions que l’on veut pour, par exemple, implémenter un algorithme particulier. Cependant, la dernière instruction doit obligatoirement correspondre à...