Ruby:我应该如何访问类中的实例变量?

菲利普·巴图兹(Filip Bartuzi)

在ruby中,您可以直接通过@var_name或通过私有getter在内部访问变量attr_reader :var_name

哪一个解决方案更正确地说正确?使用解决方案1或解决方案2有什么优点/缺点?

解决方案1:

class Point
 def initialize(x, y)
   @x = x
   @y = y
 end

 def distance
   Math.sqrt(@x ** 2 + @y ** 2)
 end
end

解决方案2:

class Point
  def initialize(x, y)
   @x = x
   @y = y
  end

  def distance
    Math.sqrt(x ** 2 + y ** 2)
  end

private 
  attr_reader :x, :y

end
斯派克曼

我将使用第二个选项:

class Point
  def initialize(x, y)
   @x = x
   @y = y
  end

  def distance
    Math.sqrt(x ** 2 + y ** 2)
  end

private 

  attr_reader :x, :y    
end

有两个原因:

  1. attr_reader可能更快(如Filip Bartuzi指出的那样)
  2. 使用,attr_reader可以通过用attr_reader自定义getter方法替换来简化以后重构该类的过程

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Ruby mixin - 访问类实例中的模块实例变量

来自分类Dev

类中的 Ruby 实例变量?

来自分类Dev

如何从其实例变量访问类的实例

来自分类Dev

如何在我的部分中访问我的实例变量

来自分类Dev

如何在python中访问父类的实例变量?

来自分类Dev

如何使用关注访问实例方法中的类方法(或变量)?

来自分类Dev

如何在ruby类中获取所有实例变量?

来自分类Dev

我应该如何在Python中引用类变量?

来自分类Dev

我应该如何在Python中引用类变量?

来自分类Dev

为什么不能在Ruby的单例类定义中访问类实例变量?

来自分类Dev

如何动态访问Ruby实例变量/方法?

来自分类Dev

在Ruby OOP中访问实例变量

来自分类Dev

访问助手类中的实例变量

来自分类Dev

Ruby中的类级别实例变量

来自分类Dev

子类中的Ruby类实例变量

来自分类Dev

Ruby-从匿名类访问实例方法/变量

来自分类Dev

ruby类变量中访问方法的简写

来自分类Dev

如何访问抽象类的实例变量到类?

来自分类Dev

如何从 Ruby 中的实例方法访问模块?

来自分类Dev

@count是Ruby中的实例变量还是类变量?

来自分类Dev

如何访问模型类中的类变量

来自分类Dev

如何在Swift中访问类的实例

来自分类Dev

如何访问数组中的实例变量?

来自分类Dev

如何访问数组中的实例变量?

来自分类Dev

如何让实例变量访问 rails 中的“id”?

来自分类Dev

如何制作可在类和每个模型实例中访问的模块变量?

来自分类Dev

Rails Action Cable:如何访问 ApplicationCable::Channel 类中的实例变量?

来自分类Dev

如何在Ruby中调用实例变量

来自分类Dev

从实例访问类变量

Related 相关文章

热门标签

归档