Rubyがミニツク

あなたのRubyの技術に関するより詳しい知識と理解を増やします。

Ruby入門コース

このコースについて

Rubyのeラーニング研修システムはRailsを使ってWebアプリケーション開発ができる技術者の育成を目指します。 そのため、Railsを扱うことができるだけのRubyの知識を得ることがRuby入門コースの目標となっています。

コンテンツ一覧

ヒント レッスンの名前をクリックすると、その内容を表示します。

次のコンテンツ ホームへ戻る

メソッドの別名

Rubyのメソッドは複数の名前を持つことができます。キーワードのaliasを使うことによって、既に定義したメソッドに新しい名前を付けることができます。

alias <新しい名前> <古い名前>

実際に指定した例が以下になります。

def hello
  puts("Hello!")
end
alias new_hello hello
new_hello

このようにメソッドに別名を与えることは、メソッドを拡張したい時におこないます。以下のように元の機能は別名で残しておいて、新しい機能を新しく定義する古い名前のメソッドに追加します。

def hello
  puts("Hello!")
end
alias original_hello hello
def hello
  puts("Hello!")
  original_hello
  puts("World!")
end
hello

aliasを使うことによって、複数の名前をメソッドは持てます。また、aliasを使って複数の名前を持たせてから、既存メソッドだけを拡張し、元のメソッドの機能を残すことができます。
ただし、異なるメソッドが同じ名前を持つことはできません。

演算子メソッド

メソッドであることを意識せずに使っているメソッドがあります。四則演算子や配列オブジェクトを作成するために使った[]は、文法ではなくてメソッドでした。そのため、メソッド呼出しの形でも使うことができます。

p 10.+(20)  #=> 30

レシーバに指定している数値オブジェクトと引数に足したい数値オブジェクトを足した値が返ってきます。これまでは以下のように呼び出していました。

p 10 + 20  #=> 30

Rubyはプログラムが読みやすいように、メソッド呼出しがこのような形で書くことができるようにしています。同じように配列オブジェクトの要素を加えられる[]=メソッドも以下のように書くこともできます。

ary = []
# 第1引数がインデックスの指定で、第2引数が代入する値
p ary.[]=(1, 10)  #=> [nil, 10]
p ary.[](1)       #=> 10

このように呼び出すことによって、配列オブジェクトに要素を加えられます。引数の先頭に指定した1は、要素を加えたいインデックスの位置です。インデックスが1の場所に10が加えられ、同じように[]メソッドで要素の値を取り出しています。どの演算子がメソッドなのかはリファレンスに詳しく載っていますので、そちらをご覧ください。


次のコンテンツ ホームへ戻る