1. ホーム
  2. ruby

[解決済み] aliasとalias_methodのどちらを使うべきですか?

2022-03-15 20:13:22

質問

のブログ記事を見つけました。 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

ブログ記事へのリンクはこちら

解決するには?

alias_method は必要であれば再定義することができます。(定義されているのは Module クラスがあります)。

alias の動作はそのスコープによって変化し、時にはかなり予測不可能になることがあります。

評決。使用 alias_method - より柔軟性が増します。

用法です。

def foo
  "foo"
end

alias_method :baz, :foo