Rubyのaliasとalias_methodでメソッドに別名を付ける方法【初心者向け】

初心者向けにRubyでaliasとalias_methodを使う方法について解説しています。これらは既存のメソッドに別名をつけるものです。それぞれの違いも含めて学習していきましょう。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営。初心者向けに解説した記事が4,000以上あります。現役エンジニアの方はこちらをご覧ください。

Rubyのaliasとalias_methodの使い方と2つの違いについて説明します。

 
そもそもRubyについてよく分からないという方は、Rubyとは何なのか解説した記事を読むとさらに理解が深まります。

なお本記事は、TechAcademyのオンラインブートキャンプRuby講座の内容をもとに紹介しています。

 

田島悠介

今回は、Rubyに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

aliasとalias_methodの使い方について詳しく説明していくね!

大石ゆかり

お願いします!

 

aliasとalias_methodの違いとは

どちらも既存のメソッドに対して別名をつけることができるものですが、下記の点が違いがあります。

alias alias_method
グローバル変数に別名をつける 可能 不可能
メソッド名に文字列が使える 不可能 可能
キーワードである Yes No
メソッドである No Yes
オーバーライドできる 不可能 可能

これらの違いを考慮して、それぞれ適した使い分けをする必要があります。

alias_methodメソッドで別名を付ける場合、元のメソッドに対してremove_methodやundef_methodを適用することで元にメソッドを呼べないようにすることもできます。

 

aliasとalias_methodの書き方

aliasの書き方

alias 新メソッド名 旧メソッド名
alias 新グローバル変数名 旧グローバル変数名

 

alias_methodの書き方

alias_method 新メソッド名, 旧メソッド名

 

[PR] Rubyのプログラミングで挫折しない学習方法を動画で公開中

実際に書いてみよう

ソースコード

def first_method
  p "this is first_method"
end

alias second_method first_method

second_method # => "this is first_method"
# second_methodはfirst_methodのaliasになっているため、first_methodが実行されます

Class AliasMethodTest
  def first_method
    p "this is first_method"
  end

  alias_method :second_method, :first_method
end

AliasMethodTest.new.second_method # => "this is first_method"
# second_methodはfirst_methodのaliasになっているため、first_methodが実行されます

以下のバージョンでサンプルコードを動かしています。

$ ruby -v
ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-linux]

 

回答してくれたメンター

阿部祐也

職種: エンジニア普段の業務: リモートワークで勤務しながら、自社・受託サービスの開発に従事
Ruby on Rails, Node.js, TypeScript, React, AWSなどを利用したWeb系のシステムの開発を主に担当開発実績: ソーシャルゲーム、ツール系アプリ、広告システム、ヘルスケア系アプリのプロジェクトに参加しており、PHP, Ruby on Rails, Objective-C, Swiftでの開発を担当その他: リモートワークを活かして毎日愛猫と一緒にコードを書いています。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でも最短4週間でRuby on Railsを使ったプログラミングを習得できるオンラインブートキャンプRuby講座を開催しています。

挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。