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

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

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,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では、初心者でもRuby on Railsを使ったプログラミングを習得できるオンラインブートキャンプRuby講座を開催しています。

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

独学に限界を感じたら…テックアカデミーに相談しよう

プログラミングを独学していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 独学に不安を抱えている方へ、現役エンジニア講師とマンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう 厳しい試験を通過した講師 があなたの相談に真摯に向き合います。

「ただ気になることを相談したい」
「漠然としているがプロの話を聞いてみたい」

こんな気持ちでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料で予約する