2011-02-08 14 views
3

Rubyコードでは、グローバル変数は一度も使用されていません。私はそれらの使用法が言語間で眉をひそめられていることを理解していますが、実際にはルビーの役に立たないと思われます。誰もそれらを使用する適切に設計されたコードを指すことができますか?Rubyグローバル変数、正当な使用

私は正しいと彼らは冗長/歴史的、なぜそれらは1.9で持続するのですか?

明らかに、Rubyがあなたのために設定する変数は、$"$stdinのようなものではありません。私は自分のコードで使うことを意味します。

答えて

2

私はまともなコードでそれを見る唯一の時間はログです。

$log = Logger.new('foo.log', 'daily') 

定数は多分うまくいくでしょうが、何とか定数で奇妙な呼び出し方法を感じます。

+0

「クラスメソッド」は定数でメソッドを呼び出す例です。 –

+0

あなたの$ logに相当するRailsがRails.logger、cattr_accessorだとします。彼らはグローバル変数と機能的に同等だと思うので、あまりにも珍しいわけではありません! – noodl

1

環境変数は、通常、Rubyのグローバル変数です。 CLASSPATHはjrubyなどです。

また、グローバル変数を使用して安価なシングルトンを実装することもできます(ただし、お勧めできません)。

したがって、グローバル変数にはRubyの場所があります。

+1

+1グローバル変数は、限られているがまれに、どの言語でも使用できます。 – Krule

+0

これは、シングルトンを作成するという面白い点です。むしろ、プログラムのライブでは多くても一度初期化する必要があるオブジェクトです。これらは通常、 'some_global_variable'ではなくSomeConstantを介して参照されます。 – noodl

関連する問題