メッセージ式とは? わかりやすく解説

メッセージ式

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/12/04 03:18 UTC 版)

Smalltalk」の記事における「メッセージ式」の解説

Smalltalk では「メッセージ式」と呼ばれる書式コード記述する。メッセージ式は「レシーバー」に「メッセージ」を送ることを表すためのもので、そのまま receiver message記述するメッセージはさらに、呼び出されるされるメソッド方法)の名前を表す「メッセージセレクター」と0個以上の引数組み合わせからなる。ただし Smalltalk場合必ずしもセレクターメソッド名は一致しないまた、メッセージ送り先メソッドではなくブロック外部関数になっている場合もある。セレクター引数の数だけコロン自身に含まなければならず、メッセージとして記述する際にはコロン直後引数挿入する。 メッセージ式セレクター引数receiver noArg noArg N/A receiver oneArg: arg oneArg: arg receiver firstArg: arg1 secondArg: arg2 firstArg:secondArg: arg1、arg2 引数なしのメッセージを単項メッセージ、そのセレクターを単項セレクター呼び引数ありのメッセージをキーワードメッセージ、そのセレクターをキーワードセレクターと呼ぶ。メッセージ記述の際に引数挿入により分断されたキーワードセレクター断片例えば firstArg:secondArg: なら firstArg: と secondArg:)をキーワードと呼ぶが、あくまで便宜的な呼び名過ぎずそうした言語要素存在しない他の言語見られる「キーワード引数」のように省略できるものではなく、また引数順入れ替えられるものでもないセレクター原則としてアルファベット数字と0個以上(かつ、引数同数)のコロンから成るが、例外として二項演算模した記述が可能となるように記号のみから成る引数1つセレクター使ってメッセージ式を記述するともできる。これを二項メッセージ、そのセレクター二項セレクターと呼ぶ。 メッセージ式セレクター引数3 + 4 + 4 #( 1 2 3 ), #( 4 5 ) , #( 4 5 ) この場合上の「3 + 4」では、「3」がレシーバーで「+ 4」がメッセージである。 通常の処理系では、単項メッセージ二項メッセージ、キーワードメッセージの順で評価される二項メッセージ間で乗除優先はない。 メッセージ式結合性明示した等価表現3 + 4 * 5 min: 6 factorial ( ( 3 + 4 ) * 5 ) min: ( 6 factorial ) セミコロン「;」でメッセージ式を区切る事により、1個のレシーバーに対して複数メッセージを送ることが出来る。これをカスケード式という。 | collection |collection := OrderedCollectionnewadd: 0;add: 1;add: 2;add: 3;add: 4;yourself. カスケード式を用いて書いた上記の文は、カスケード式を用いない次の文と等価である。 | collection |collection := OrderedCollection new.collection add: 0.collection add: 1.collection add: 2.collection add: 3.collection add: 4.

※この「メッセージ式」の解説は、「Smalltalk」の解説の一部です。
「メッセージ式」を含む「Smalltalk」の記事については、「Smalltalk」の概要を参照ください。

ウィキペディア小見出し辞書の「メッセージ式」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「メッセージ式」の関連用語

メッセージ式のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



メッセージ式のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、WikipediaのSmalltalk (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS