好的,所以我已经阅读了 Ruby 中的类变量、类实例变量和实例变量。我发现Phrogz 的这个解释很有启发性。
现在我正在尝试向我的类中添加一个变量,该变量可由我的类中的多个方法访问,但它不在类的多个实例之间共享:
Class QuizSession < ApplicationRecord
attr_accessor :index_changed
def initialize
@index_changed = false
end
def index_changed?
@index_changed
end
def set_index_changed!
@index_changed = false
end
def method_a
do sth.
...
@index_changed = true
end
end
我想要的是这个:( 就像@my_things
在Phrogz 的例子中)
session_a = QuizSession.new
session_b = QuizSession.new
session_a.method_a
p session_a.index_changed? #=> true
p session_b.index_changed? #=> false
我是否正确假设,目前我正在定义 4 个不同@index_changed
的变量,每个变量都在它们各自方法的范围内,但对类的其余部分不可见?
但是,如果我将@index_changed
方法之外的变量声明为类实例变量,那么它不会在类实例之间共享吗?