我应该使用alias还是alias_method?

2024-01-01

我发现了一篇博客文章alias vs. alias_method。如该博客文章中给出的示例所示,我只想将一个方法别名为同一类中的另一个方法。我应该使用哪个?我总是看到alias用过,但是有人告诉我alias_method更好。

别名的使用

class User

  def full_name
    puts "Johnnie Walker"
  end

  alias name full_name
end

User.new.name #=>Johnnie Walker

alias_method 的用法

class User

  def full_name
    puts "Johnnie Walker"
  end

  alias_method :name, :full_name
end

User.new.name #=>Johnnie Walker

博客文章链接在这里 http://blog.bigbinary.com/2012/01/08/alias-vs-alias-method.html


alias_method如果需要可以重新定义。 (它定义在Module class.)

alias的行为根据其范围而变化,有时可能非常不可预测。

结论:使用alias_method- 它为您提供了更多的灵活性。

Usage:

def foo
  "foo"
end

alias_method :baz, :foo
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我应该使用alias还是alias_method? 的相关文章

随机推荐