实例变量不在方法之间共享
Instance variable is not shared among methods
为什么实例变量在 rails 上的 Ruby 中不起作用?
这是我的代码:
class books
@price = true
def new
p(@price)
end
end
在控制台中它打印 nil
为什么?我希望它打印真实。
您正在尝试在 class 级别上定义实例变量。考虑使用来自 Active Support 的 @@price = true
或 cattr_accessor(:price) { true }
。
In console it prints nil
why? I want it to be printed true.
那个实例变量赋值在另一个对象上,class 本身。自然地,一个对象(class 的实例)不能看到另一个对象(class)的实例变量。相反,您可以在实例级别设置它
class Books
def initialize
@price = true
end
def hello
p @price
end
end
为什么实例变量在 rails 上的 Ruby 中不起作用?
这是我的代码:
class books
@price = true
def new
p(@price)
end
end
在控制台中它打印 nil
为什么?我希望它打印真实。
您正在尝试在 class 级别上定义实例变量。考虑使用来自 Active Support 的 @@price = true
或 cattr_accessor(:price) { true }
。
In console it prints
nil
why? I want it to be printed true.
那个实例变量赋值在另一个对象上,class 本身。自然地,一个对象(class 的实例)不能看到另一个对象(class)的实例变量。相反,您可以在实例级别设置它
class Books
def initialize
@price = true
end
def hello
p @price
end
end