Déclaration explicite des noms de symboles à l'aide de $
Cette amélioration est très importante car elle permet de déclarer des symboles dont le nom entre en collision avec des mots clès du langage (noms d'opérateur).
On ne pouvait pas, par exemple, déclarer la variable 'string car l'interpréteur considére cette forme comme l'opérateur string quoté.
Bien entendu, dans l'espace de noms d'un objet, on fait précéder le nom symbolique de l'opérateur de résolution de portée. Ainsi, ':string ou 'SELF:string ne pose pas de problème. Par contre, si on n'utilisait pas la résolution de portée dans une expression comme (objet 'string), on constatait également le même souci: 'string n'était pas considéré comme un symbole mais bien comme un opérateur.
Si on écrit à présent un symbole '$x, celui-ci est stocké sous le nom symbolique 'x où 'x est un nom symbolique explicite. Bien entendu, on peut ensuite utiliser ce même symbole de façon implicite 'x puisque son interprétation ne pose aucun problème. Il ne peut s'agir que d'un symbole.
Si on écrit maintenant '$string, on indique explicitement qu'il s'agit du symbole 'string et non de l'opérateur string. Le problème consistant à distinguer les opérateurs des symboles dont les noms entre en collision est donc résolu.
Blueprint information
- Status:
- Complete
- Approver:
- Luc Bruninx
- Priority:
- Essential
- Drafter:
- Luc Bruninx
- Direction:
- Approved
- Assignee:
- Luc Bruninx
- Definition:
- Approved
- Series goal:
- Accepted for 1.0
- Implementation:
- Implemented
- Milestone target:
- None
- Started by
- Luc Bruninx
- Completed by
- Luc Bruninx