gpt4 book ai didi

ruby-on-rails - Ruby 实例变量和局部变量

转载 作者:太空宇宙 更新时间:2023-11-03 16:59:00 25 4
gpt4 key购买 nike

我一直认为实例变量只在类的定义中使用,并且可以在类内部访问。当我学习 Rails 时,我正在看一个这样的例子:

class Movie
def initialize(isbn)
@isbn = isbn
end
def isbn
@isbn
end
end
@movie = Movie.new("0702")
@movie.isbn

我对实例变量出现在类定义之外感到困惑。为什么使用@movie 而不是局部变量“movie”?

跟进问题:

  1. 既然实例变量可以存在于另一个范围内,当程序需要创建多个新对象时,它们是否都具有相同的名称@movie?新对象总是覆盖旧对象吗?

  2. 在较大的程序(如 MVC 应用程序)中,@movie 是否由所有文件(模型、 View 、 Controller )共享?

最佳答案

I've always thought instance variable as used only within the definition of a class and can be accessed inside the class.

这是错误的。实例变量与类完全无关。实例变量属于对象(又名实例),这就是它们被称为实例变量的原因。

I'm confused that a instance variable appears outside of a class definition.

实例变量出现在类定义之外是完全没问题的。毕竟,您示例中的其他实例变量也不在类定义中,它们在方法定义中。

Why use @movie instead of local variable "movie"?

没有理由在您发布的代码片段中这样做。但如果它是一个更大计划的一部分,那么肯定有充分的理由这样做。

关于ruby-on-rails - Ruby 实例变量和局部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41408737/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com