Techioz Blog

Ruby で送信者と受信者を理解するにはどうすればよいですか?

概要

Ruby の送信者と受信者の実際の意味を理解するのは難しいと思います。それらは一般的に何を意味するのでしょうか?これまでのところ、私は単にメソッド呼び出しとその戻り値を受け取るものとして理解しています。しかし、私の理解が十分ではないことは承知しています。 Rubyの送信者と受信者について具体的に説明してくれる人はいますか?

解決策

オブジェクト指向の中核となる概念は、メッセージングと、計算のアクター モデルから多くを借用した初期の概念化です。オブジェクト指向という用語を作り、最初のオブジェクト指向言語の 1 つである SmallTalk を発明したアラン・ケイ氏は、メッセージではなくオブジェクトに焦点を当てた用語を使用したことについて遺憾の意を表明し、その方がより強い概念であると考えていました。

メッセージについて話すとき、当然、メッセージの「送信者」と「受信者」が存在します。送信者はメソッドを呼び出すオブジェクトであり、受信者はメソッドが呼び出されるオブジェクトです。 Ruby では、オブジェクトに明示的に名前を付けずにメソッドを呼び出すと、メソッド名とその引数がメッセージとしてデフォルトの受信者自身に送信されます。

OO では、「呼び出しを行う」、「メソッドを呼び出す」、および「メッセージを送信する」は同等の概念です。同様に、「呼び出される」、「メソッドが呼び出される」、「メッセージを受信する」も同等です。