小编典典

我应该使用别名还是 alias_method?

all

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

阅读 102

收藏
2022-03-29

共1个答案

小编典典

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

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

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

用法:

def foo
  "foo"
end

alias_method :baz, :foo
2022-03-29