我一直認爲實例變量只能在類的定義中使用,並且可以在類內部訪問。當我學習鐵軌時,我正在看一個像這樣的例子: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
在您最近的編輯之後,您的問題很不幸,因爲過於寬泛而成爲焦點話題。請只問一個,每個問題集中的問題。如果您有多個問題,請提出多個明確可理解,重點突出且經過深入研究的問題。請注意,我不知道你的第一個後續問題試圖提問。第二個也沒什麼意義:實例變量屬於實例,也就是對象。它們與文件無關。 –