質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.53%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

2回答

1581閲覧

Ruby レシーバについて

hanggang

総合スコア31

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

3グッド

4クリップ

投稿2014/08/29 23:58

Ruby初心者です。
レシーバという用語がわからなかったので、調べてみたりしたら
呼び出すメソッドが属するオブジェクトであるといったことが
ありました。
これはつまり、メソッド呼び出しの.の左の部分のことで良いのでしょうか?
確認というか、いまいち分からなかったので
質問させていただきました。

DrqYuto, yoshi_hiko, tseki_is👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

12

ベストアンサー

レシーバーは特に Ruby の用語というわけではなく、オブジェクト指向一般に使われる用語です。

意味は「 . の左側」で間違いありません。
例えば以下の例では carrun メソッドのレシーバーとなります。
car.run

気になっている点は「メソッドを実行している側を何故レシーバーというのか」という所ではないかと思います。

オブジェクト指向では処理はメッセージのやり取りによって行うという考え方があります。
carrun メソッドを呼び出すというのをメッセージの観点からいうと ** car に run のメッセージを送る** となります。
このため、car はメッセージの受け取り側なので、「レシーバー」と呼ばれています。

投稿2014/09/01 03:46

yohshiy

総合スコア863

momonga0714, DrqYuto, umerin, tseki_is, ikuwow, Sigma1630, kuraudo, syunja, osouonna, mirukun, 他2名👍を押しています

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hanggang

2014/09/04 00:26

わかりやすい説明で理解できました。回答ありがとうございました!!
guest

3

そうです。
.の左側のオブジェクトのことです。
例えばですが、
obj.reverse()みたいなのがあったら、
objがレシーバです。

投稿2014/08/31 06:53

kraken

総合スコア229

DrqYuto, tseki_is, hanggang👍を押しています

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.53%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

同じタグがついた質問を見る

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。