实例变量的别名?

发布于 2024-09-07 08:06:19 字数 140 浏览 2 评论 0原文

除了将实例变量分配给另一个实例变量之外,还有其他方法可以为实例变量创建别名(不谈论数据库别名属性)吗?

例如:

@imavar

alias_attribute(@hesavar, @imavar)

Is there a way to create aliases for instance variables (not talking about db alias attributes) other than assigning it to another instance var?

For ex:

@imavar

alias_attribute(@hesavar, @imavar)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

岁月苍老的讽刺 2024-09-14 08:06:19

您可以使用 getter 方法的别名来代替。

You can alias getter methods instead.

杀手六號 2024-09-14 08:06:19

Ruby 并没有真正的属性。当您使用 attr_reader :imavar 时,您正在创建一个用于检索值的方法:

def imavar
  @imavar
end

因此,要为变量创建别名,您可以为该方法创建一个别名:

alias_method :hesavar, :imavar

完整的示例如下:

class DataHolder
  attr_reader :imavar
  alias_method :hesavar, :imavar

  def initialize(value)
    @imavar = value
  end
end

d = DataHolder.new(42)
d.imavar
 => 42
d.hesavar
 => 42

Ruby doesn't really have attributes. When you use attr_reader :imavar you are creating a method for retrieving the value:

def imavar
  @imavar
end

So to create an alias for the variable you could create an alias for the method:

alias_method :hesavar, :imavar

The complete example would be:

class DataHolder
  attr_reader :imavar
  alias_method :hesavar, :imavar

  def initialize(value)
    @imavar = value
  end
end

d = DataHolder.new(42)
d.imavar
 => 42
d.hesavar
 => 42
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文