本文介绍了Ruby:我应该如何访问类中的实例变量?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
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中,您可以通过 @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有两个原因:
更多推荐
Ruby:我应该如何访问类中的实例变量?
发布评论