class BookInStock
attr_reader :isbn, :price
def initialize(isbn, price)
@isbn = isbn
@price = Float(price)
end
“这是我们在本章中第一次使用符号。正如我们所讨论的,符号只是引用名称的一种方便方式。在这段代码中,您可以将:isbn视为名称isbn,并将普通isbn视为变量的值。在此示例中,我们将访问器方法命名为isbn和price。对应的实例变量是@isbn和@price。”</p>
问题:我知道局部变量被分配了实例变量,所以当initialize方法返回时它们不会消失。但是为什么我必须在 attr_accessor 中使用符号呢?如果我只想要普通变量怎么办?我注意到在 attr_accessor 中删除 :isbn 和 :price 的冒号会导致它停止工作。