2014-02-18 2 views
0

Я пытаюсь проследить значение экземпляра переменных @x, @y и @z во время выполнения программы:Каковы значения этих переменных экземпляра Ruby во время выполнения?

class S  
    def initialize(theX, theY) 
    @x = theX + 2 
    @y = theY + 3 
    end 

    def f(n) 
    @x = n * @x + @y 
    @y = @x + (n + 1) * @y 
    end 

    def to_s 
    return (@y + 1).to_s + " " + (@x + 2).to_s 
    end 
end 

class T < S 
    def initialize 
    super(1, 4) 
    @z = @x + @y + 3 
    end 

    def f(m) 
    super(3) 
    @z *= m 
    end 

    def to_s 
    return super + " " + (@z + 3).to_s 
    end 
end 

s = S.new(6, 5) 
s.f(3) 
print s, "\n" 
t = T.new 
t.f(7) 
print t, "\n" 

Конечный результат:

65 34 
45 18 94 

Можно ли предоставить шаг- пошаговая иллюстрация того, как выполнение программы приводит к этим значениям?

+0

вы можете показать мне, как переменная трассировка делается? – user3308300

ответ

2

Попробуйте следовать изображение У меня есть ниже, или проверить @ ответ ArupRakshit по адресу How to track the execution process of ruby program

enter image description here

+0

Огромное вам спасибо за помощь! – user3308300

+0

Вы создали его вручную? :-) –

+0

@ArupRakshit yup ... Я сделал это в Google doc =) Было очень поздно ночью создать что-то, что aliases все методы и распечатать трассировку :-) – Abdo

Смежные вопросы