2016-09-07 5 views
0

私はそれを使用することができますので、同じクラスの別のメソッドにあるメソッドから値を取得する方法はありますか?1つのメソッドから同じクラスの別のメソッドに値を取得するにはどうすればよいですか?

例:

def initialize var1 
    @var1 = var1 
end 

def method_a var2 
    #Here how can I use var1 to add it to var1 to make a var2 
    var2 = var1 + var1? 
end 

def method_b 
    #display 
    "#{@var1}, "#{var2}" 
end 

だから私は初期化され、その後、method_bに表示されませんでしたmethod_aにおける第二の変数を作ることと思います。それのような

+0

'@のvar1'は、同じクラス内のすべてのメソッドに表示されます。 –

+0

はい、それは私が作成する必要があるvar2です – Pending

+0

var1 + var1として定義された値var2をしたい場合は、単純にvar1 + var1を返すvar2というメソッドを定義する方が理にかなっています –

答えて

1
def method_a 
    @var2 = @var1 + @var1 # or: @var2 = @var1*2 
end 

def method_b 
    puts "#{@var1}, #{@var2}" 
end 

またはsometh:

class Foo 
    def initialize var1 
    @var1 = var1 
    @var2 = method_a #or change this string to call method_a, so just: method_a and this return @var2 = @var1*2 
    end 
    def method_a 
    @var1*2 #and there you should use variable @var2 = @var1 + @var1 (or @var1*2) 
    end 
    def method_b 
    p "#{@var1}, #{@var2}" 
    end 
end 


#=> boo = Foo.new(1) 
#=> boo.method_b 
#=> 1, 2 
関連する問題