##クラス内で定めた変数をそのクラスにあるメソッドのどこからでも参照できるようにしたい
ruby2.4です
たとえば
class Sample num = 0 def method_one num += 1 end def method_two puts num end puts num end sam = Sample.new sam.method_two
とあったとすると、1が出てきて欲しいですがこれの出力は0となります
このような感じで値を参照したいとき、どのようにすればよいでしょうか
クラス変数やインスタンス変数にしてみたりしましたがうまくできません。
クラスの中ではなく、メソッドの中で作成した変数を別のメソッドから参照する形でも大丈夫です。
書いているコードのクラスの中にはメソッドが5つあり、入力された値によって条件分岐をしています。
入力はクラスの外で受取って、一番上で定めた(上じゃなくてもよい)メソッドと一つ下のメソッドで条件分岐。
このコードに当てはめて言うとdef method_one(num)
def method_two(num)
となっているので、sam.method_one(受けた値)
sam.method_two(受けた値)
となっています。
method_twoを実行すると、twoの結果をthreeで使い、さらにその結果をfourで使い、fiveが実行される時にoneの結果と合わせて条件分岐をしています。
わがまま言うと、クラス設計やスコープ?がよく理解できていないのでしょうが、クラスの外で定めた変数をクラスの中で使えるようにする。もしくはクラスの中で定めた変数をクラスの外からアクセスする。といったことも行いたいのですが、出来ないのでしょうか
よろしくお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。