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

编程入门 行业动态 更新时间:2024-10-17 07:30:04
本文介绍了Ruby:我应该如何访问类中的实例变量?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

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

In ruby you can internally access variables directly via @var_name or via private getters attr_reader :var_name.

哪个解决方案更多(语义?)正确?使用解决方案1或解决方案2的任何优点/缺点?

Which solution is more (semantically?) correct? Any advantages/disadvantages of using either solution 1 or solution 2?

解决方案1:

class Point def initialize(x, y) @x = x @y = y end def distance Math.sqrt(@x ** 2 + @y ** 2) end end

$ b b

解决方案2:

Solution 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

有两个原因:

  • attr_reader 可能是更快(Filip Bartuzi已指出)
  • 使用 attr_reader 通过用自定义getter方法替换 attr_reader ,更容易重构该类。
  • attr_reader might be faster (as Filip Bartuzi already pointed out)
  • Using attr_reader might make it easier to refactor that class later on by replacing the attr_reader with a custom getter method.
  • 更多推荐

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

    本文发布于:2023-11-17 12:30:56,感谢您对本站的认可!
    本文链接:https://www.elefans.com/category/jswz/34/1610011.html
    版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
    本文标签:变量   类中   实例   Ruby

    发布评论

    评论列表 (有 0 条评论)
    草根站长

    >www.elefans.com

    编程频道|电子爱好者 - 技术资讯及电子产品介绍!