加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-17 02:25:08 所属栏目:百科 来源:网络整理
导读:在 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 **
在 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

end

有两个原因:

> attr_reader可能是faster(正如Filip Bartuzi已经指出的那样)>使用attr_reader可以通过使用自定义getter方法替换attr_reader来更轻松地重构该类.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读