在 Ruby OOP 中访问实例变量

Joe*_*rth 0 ruby oop

我正在学习 Ruby OOP,并面临以下问题。

我们可以在下面的类中添加什么来访问实例变量@volume?

class Cube
  def initialize(volume)
    @volume = volume
  end
end
Run Code Online (Sandbox Code Playgroud)

我最初的想法是添加attr_reader :volume访问实例变量。

相反,模型答案建议添加如下新方法。

def get_volume
  @volume
end
Run Code Online (Sandbox Code Playgroud)

为什么这是首选方法?如果cube.volumecube.get_volume被调用,这两种方法都会输出 100 。

dja*_*ski 5

attr_reader. 通常get_,Ruby 社区中相当避免使用带有前缀的方法(与 Java/C# 代码中常见的相反)