2016-09-07 3 views
0

하나의 메소드에서 같은 클래스의 다른 메소드로 값을 가져와 사용할 수 있습니까?하나의 메소드에서 동일한 클래스의 다른 메소드로 값을 가져 오려면 어떻게해야합니까?

예 :

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 
관련 문제