vendredi, février 25, 2005

Constantes

Les contantes sont repérées parce qu'elles commencent par une majuscule, exemple:
C:\ruby\rubyscube>irb
irb(main):001:0> Constante = "ma constante"
=> "ma constante"
irb(main):002:0> Constante = "ma nouvelle constante"
(irb):2: warning: already initialized constant Constante
=> "ma nouvelle constante"
alors que dans le code suivant la variable n'est pas une constante donc ça marche:
irb(main):003:0> constante = "ma constante"
=> "ma constante"
irb(main):004:0> constante = "ma nouvelle constante"
=> "ma nouvelle constante"
Donc attention aux majuscules ça a de l'importance... Le mieux c'est de mettre tous les noms des constantes en majuscule, exemple:
irb(main):005:0> CONST = "ma constante"
=> "ma constante"
irb(main):006:0> CONST = "ma constante2"
(irb):6: warning: already initialized constant CONST
=> "ma constante2"

1 commentaire:

Geoffroy Carrier a dit…

Attention ! Dans les deux cas ça marche. La seule différence réside dans le Warning, qui sert d'avertisseur (warning : attention, risque ; error : ah ben non, jveux pas).

Il n'y a rien à faire, à part créer une classe avec une fonction initialize sans argument qui définit une variable avec la valeur à garder constante, une fonction d'accès lecture à cette variable, et pas de fonction écriture. Ainsi en dehors de cette classe, rien ne peut toucher à la valeur.

Il faut avoir sérieusement besoin de sécurité, mais a priori ça fonctionne.