Мои переменные экземпляра возвращаются к нулю, даже если они установлены в отдельной вызываемой функции.
Я пытался распечатать значения до и после переменной экземпляра и видел, гдеполучается ноль. Это довольно загадочно, хотя. Прикрепление примера (https://repl.it/repls/FirebrickPresentKeyboard) также ниже:
class Test
def process
return if a.nil? && b.nil?
puts @some
end
def a
@some = nil
return true
end
def b
@some = "abc"
return false
end
end
class Test2
def process
return if c.nil?
puts @hello
end
def c
@hello = "hello"
return true
end
end
t = Test.new
t.process
t2 = Test2.new
t2.process
В классе Test я ожидаю, что @ some выведет «abc», так как оно установлено во время «b»"function. Тем не менее, он печатает ноль.
В классе Test2 я ожидаю, что @ hello выведет" hello ", и это определенно произойдет.