只今Rubyを勉強中なのですが
Ruby
1Class Test 2 def initialize(name1,name2) 3 @hoge1 = name1 4 @@hoge2 = name2 5 end 6end
上記だと
@hoge1はインスタンス変数
@@hoge2はクラス変数
でインスタンス変数は、インスタンス毎に値を独自で持つ
クラス変数は、全インスタンスで1つの値を持つ
というところまでは理解できたのですが。
Ruby
1Class Test 2 def initialize(name1,name2) 3 @hoge1 = name1 4 @@hoge2 = name2 5 end 6end 7 8hogeee = Test.new 9 10active_flg = 0 11@user_count = 0 12
上記のようにメソッドでもクラスの外でもない箇所で宣言した変数「active_flg」「@user_count」は何変数なのでしょうか?
予想では「active_flg」はローカル変数で「@user_count」はインスタンス変数だと思っているのですが
ググって出てくる解説サイトが皆、クラスの中に書いてある変数についてしか説明していないので合っているのかもやもやとしております。
またこのクラス外で作成した変数は、後続の処理(例えば新しく作るdefなど)でスコープ外になり、使用できないと思うのですが、@や$を付けてでどこでも読めるようにしていいものなのでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/18 08:39