2011-02-08 4 views
3

Je n'ai jamais vu de variables globales utilisées dans un code Ruby. Je comprends que leur utilisation est désapprouvée à travers les langues, mais ils semblent réellement inutile dans Ruby. Quelqu'un peut-il pointer vers un code correctement conçu qui les utilise?Variables globales Ruby, utilisations légitimes

Si j'ai raison et qu'ils sont redondants/historiques, pourquoi persistent-ils en 1.9? Pour être clair, je ne veux pas dire des variables que Ruby met en place pour vous comme $" et $stdin. Je veux dire des utilisations dans son propre code.

Répondre

2

La seule fois que je le vois en code décent est pour un journal. Une constante serait probablement très bien, mais il semble en quelque sorte étrange d'appeler des méthodes sur une constante.

+0

"méthodes de classe" est un exemple de méthode d'appel sur une constante. –

+0

Je suppose que l'équivalent Rails de votre journal $ est Rails.logger, un cattr_accessor. Je suppose qu'ils sont fonctionnellement équivalents aux variables globales, donc ils ne sont pas si inhabituels après tout! – noodl

1

Les variables d'environnement sont généralement des variables globales dans Ruby. Ainsi sont CLASSPATH en jruby et ainsi de suite ...

De plus, vous pouvez implémenter des singletons bon marché en utilisant des variables globales (bien que ce ne soit pas conseillé). Donc, les variables globales ont définitivement leur place dans Ruby.

+1

+1 Les variables globales ont leur utilisation, bien que limitée et rare, dans n'importe quelle langue. – Krule

+0

C'est un point intéressant à propos de la création de singletons ou plutôt d'objets qui doivent être initialisés au plus une fois dans la vie du programme. Celles-ci seraient généralement référencées via SomeConstant, plutôt que '$ some_global_variable'. – noodl