メッセージ
SenseTalkは、あるオブジェクトから別のオブジェクトに_メッセージ_を送信することで動作するオブジェクト指向言語です。メッセージがオブジェクトに送信されると、そのスクリプトにそのメッセージの_ハンドラ_がある場合、応答することができます。特定のメッセージのハンドラを持っていないオブジェクトは、そのメッセージを他のオブジェクトに引き渡します。ハンドラの使用方法の詳細は、ハンドラをご覧ください。
オブジェクトが_何かを行う_のは、_メッセージ_を受け取った時だけです。オブジェクトは自己にメッセージを送信することも、他のオブジェクトやスクリプトが存在する環境から送信されることもあります。例えば、スクリプトがコマンドラインから呼び出されると、スクリプトの名前に基づいたメッセージが送信され、スクリプトが実行されます。
最初に知っておくべきことは、メッセージがオブジェクトに送信された時、それを受け取って処理することも無視することもできる、ということです。メッセージとその送信方法については、引き続きお読みください。
メッセージの送信
スクリプトが実行されているとき、コマンドを実行するたびにメッセージが送信されます。メッセージは常に単語であり、最も単純なメッセージ送信文は単語一つのコマンドで、送信されるメッセージの名前です。例えば、このスクリプトの2行目は、"greetTheUser"というメッセージを送信します。
put "Hello, World!"
greetTheUser
put farewellMessage()
このスクリプトでは、1行目と3行目のput
コマンドもメッセージを送信します。実際、SenseTalkの基本的な制御構造を除いて、スクリプトのほぼすべてのコマンドがメッセージを送信します。上記の“farewellMessage()”関数への呼び出しのような関数呼び出しも、メッセ出しもメッセージを送信します。
コマンドメッセージと関数メッセージ
SenseTalkは実際には2種類のメッセージを送信します。コマンドメッセージはコマンドによって送信され、上述の例のgreetTheUser
のようなものです。関数メッセージは関数呼び出しによって送信され、上述の例のfarewellMessage()
のようなものです。2つのメッセージタイプは、それらを受け取るハンドラのタイプを除いて同一です(ハンドラを参照)。関数の呼び出し方についての詳細は、関数を参照してください。コマンドの使用方法についての詳細は、コマンドとコメントを参照してください。