我有一个范围问题,我相信并会感激任何建议,谢谢
$variable_1 = 0
module Yogi
class ErrorInside
def yogify
$variable_1 = new_value
end
end
class CheckErrors
def checker
$variable_1 += 1
end
end
end
我希望$ variable_1维护在ErrorInside类中收到的新值,并在类CheckErrors的函数中使用它,但它会将它们设置为0。
关于如何实现该变量1的任何建议都会保持ErrorInside类的新值?
此外,每个类都在单独的可执行文件中调用,因此在运行类CheckErrors之前再次运行类ErrorInside是不可能的。
这个想法是让$ variable1 globaly的新值可用于后期执行的所有类
答案 0 :(得分:1)
您需要弄清楚如何命名类,模块和定义。类和模块使用常量,因为它们的名称和方法使用snake casing。然后使用正确的表示法,在创建Class1
和Class2
的新实例后调用您的方法。
$variable1 = 0
module Module1
class Class1
def method_1
$variable1 = 10
end
end
class Class2
def method_1
$variable1 += 1
end
end
end
Module1::Class1.new.method_1
$variable1 #=> 10
Module1::Class2.new.method_1
$variable1 #=> 11