相关疑难解决方法(0)

什么是Ruby中的attr_accessor?

attr_accessor在Ruby中很难理解.谁可以给我解释一下这个?

ruby

990
推荐指数
13
解决办法
45万
查看次数

试图学习/理解Ruby setter和getter方法

我只是学习编程并决定尝试Ruby.我确定这是一个愚蠢的问题,但是教练正在讨论setter和getter方法,我很困惑.这是一个例子:

class Human
  def noise=(noise)
    @noise = noise
  end

  def noise
    @noise
  end
end
Run Code Online (Sandbox Code Playgroud)

从这个,实例化类,我可以把它说出来:

man = Human.new
man.noise=("Howdie!")
puts man.noise
Run Code Online (Sandbox Code Playgroud)

这导致了 Howdie!

现在令我困惑的是,教师说没有getter方法(两种方法中的第二种),就没有办法与实例变量@noi​​se进行交互.

但是当我删除getter方法时,我仍然可以访问@noise,参见示例:

class Human
  def noise=(noise)
    @noise = noise
  end
end

man = Human.new
puts man.noise=("Howdie!")
Run Code Online (Sandbox Code Playgroud)

这与使用它的getter方法相同.

所以现在我很困惑.为什么需要吸气剂?没有它,教师的意思是无法访问实例变量?他有可能使用旧版本的Ruby吗?

在此先感谢您的帮助.

ruby

46
推荐指数
3
解决办法
5万
查看次数

标签 统计

ruby ×2