我一直认为实例变量只能在类的定义中使用,并且可以在类内部访问。当我学习铁轨时,我正在看一个像这样的例子:Ruby实例变量和局部变量
class Movie
def initialize(isbn)
@isbn = isbn
end
def isbn
@isbn
end
end
@movie = Movie.new("0702")
@movie.isbn
我很困惑实例变量出现在类定义之外。为什么使用@movie而不是局部变量“电影”?
后续问题:
由于实例变量可以住在一个又一个的范围,当程序需要创建多个新的对象,他们都有相同的名称@movie?新对象是否总是覆盖旧对象?
在较大的程序(如MVC应用程序)中,所有文件(模型,视图,控制器)共享@movie?
你有困惑的原因,因为在这个例子中不需要使用实例变量('@ movie')。一个局部变量(只是'电影')将会非常好。 – spickermann
在您最近的编辑之后,您的问题很不幸,因为过于宽泛而成为焦点话题。请只问一个,每个问题集中的问题。如果您有多个问题,请提出多个明确可理解,重点突出且经过深入研究的问题。请注意,我不知道你的第一个后续问题试图提问。第二个也没什么意义:实例变量属于实例,也就是对象。它们与文件无关。 –