こんにちは、Ruby on Rails の初心者です。関数/メソッド内で変数を宣言することは可能ですか?教えてください。
def fun1
#initialized a global variable
end
def fun2
#access value
end
fun2関数によってfun1関数で宣言された変数の値を取得することは可能ですか
こんにちは、Ruby on Rails の初心者です。関数/メソッド内で変数を宣言することは可能ですか?教えてください。
def fun1
#initialized a global variable
end
def fun2
#access value
end
fun2関数によってfun1関数で宣言された変数の値を取得することは可能ですか
真にグローバルな変数を作成するには、次を使用します$
。
def fun1
$foo = 'bar'
end
def fun2
puts $foo
end
Hereは、一度呼び出され$foo
たクラス インスタンスの外で使用できます。fun1
最初のコメントで述べたように、これは慎重に使用する必要があります。
どこからでも書き込めるので危険です。グローバルを使いすぎると、バグの特定が難しくなる可能性があります。また、プログラムの設計が慎重に検討されていないことを示す傾向もあります。
おそらくあなたが求めているのは、以下を使用するインスタンス変数です@
。
def fun1
@foo = 'bar'
end
def fun2
puts @foo
end
Here@foo
は、クラスの現在のインスタンスのどこでも使用できます。これも、呼び出しによって宣言された後fun1
です。
たとえば、ルビーのさまざまな変数スコープでこれを参照してください。
まず、関数からグローバル変数を定義するために必要なものについて、実際のシナリオを共有できるとよいでしょう。ソリューションには、より優れた管理しやすい DRY アプローチがあるかもしれません。
第二に、「Thilo」からの回答とは別に、さまざまな状況でのレールのグローバル変数の使用法を示すいくつかの参考文献があります。ルビーに限らず。レールに必要ですか?