4.1.1 la pseudo-variable nil
nil est la seule et unique instance de la classe
UndefinedObject. C’est la valeur par défaut des variables d’instances. nil
désigne l’absence de valeur explicite associée à un objet, autrement dit, c’est
le nom de SMALLTALK pour la valeur indéfinie des autres langages de
programmation. Nous avons rencontré nil comme indicateur de valeur indéfinie
sur la page 94 quand la transmission Chien new parle nous avait livrée une
erreur, puisque la variable d’instance nom n’avait pas encore reçu une
valeur. Nous l’avons également rencontrée dans la définition de la méthode
vocabulaire: à travers le sélecteur isNil (page 108) qui teste, justement, si
une certaine variable d’instance est déjà liée à une valeur ou pas. C’est
encore une des beautés de SMALLTALK: la méthode isNil est définie dans
exactement deux classes de SQUEAK. Une fois dans la classe UndefinedObject
comme
et une autre fois dans la classe ProtoObject comme
Ainsi l’objet nil, seule et unique instance de la classe UndefinedObject,
répondra true, oui, si on le demande s’il est égale à nil. Tout autre objet
répondra à cette même question par un retentissant false, non, à cette même
question. En effet, tout objet différent de nil, n’étant pas une instance de la
classe UndefinedObject, hérite de la méthode définie dans la classe racine de
l’arbre d’héritage, ProtoObject (cf. Figure 4.1).