ObjectSquare [1999 年 1 月号]

[Happy Squeaking!!]


3.Squeak 演習:オブジェクトにメッセージを送る


それでは、オブジェクトに対して実際にメッセージを送ってみましょう。

Squeakを起動し、ワークスペース、トランスクリプトを開きます。

ワークスペースとトランスクリプトを開く

トランスクリプトウィンドウになにやら適当な文字列を書き込んでください。その後ワークスペース上で

Transcript clear.

と書き、do itしてください。

Transcript に clearメッセージを送る

Transcript の内容がクリアされるはずです。

この場合、Transcriptがレシーバとなるオブジェクト、送られたメッセージはclear、センダはあなた自身ということになります。

SmallTip: Smalltalkでオブジェクトにメッセージを送る構文は、<オブジェクト>スペース <メッセージ> ピリオドとなる。

ピリオドは、後に実行が続かない限り省略可能です。ここでは、Transcript clearで処理が終わるので本当はなくてもいいのですが、最初ですし、つけておきましょう。

では、いろいろなオブジェクトにメッセージを送ってみましょう。

今までは"do it"で実行を行っていましたが、今後は実行の後の結果(オブジェクトが処理を行った後の反応)が見たいので、"do it"の代わりに"print it"を使ってみてください。Transcript はウィンドウとして目に見えるのですぐに反応の結果がわかりますが、他のオブジェクトではそうはいきません。

ソースの意味は"のコメントで示しています。結果をみるため一文ずつ選んで実行してください。

"1 の符号変換"
1 negated.

"print it"を実行すると以下のように、すぐとなりにハイライトされて実行の結果が表示されます。

1 negated の実行

SmallTip: "print it"実行で、メッセージ実行の結果を表示できる。
SmallTip: Smalltalkのコメントは"(ダブルクォーテション)で囲む。

では同じ要領で、以下を"print it"実行しましょう。

"文字列に 長さを聞く"
'abc' size.

"文字列の 先頭を大文字にする"
'xyz' capitalized.

"文字に アスキーコードを聞く"
$A asciiValue.

"配列の最後の要素を聞く"
#( 1 2 3) last.

大文字小文字の区別はSmalltalkでは厳格ですので注意してください。

SmallTip: 文字列オブジェクトは' (シングルクォーテーション)で囲む。

SmallTip: 文字オブジェクトは$(ダラー)を先頭につける。

SmallTip: 配列オブジェクトは#() で囲み、要素をスペースで区切る。

Smalltalkでは、数字、文字列、文字といったよく使われる基本的なオブジェクトは、リテラルとして文字列を書くことによって即座に生成できます。
"do it"をしたときにSmalltalkのインタプリタ(正確にはコンパイラ)が文字列を解析して、「先頭が$ならば文字オブジェクトを生成」といった処理を自動的にしてくれるのです。その他もっと複雑なオブジェクトは、後にでてくるようにクラスオブジェクトに対するnewメッセージで生成するのが典型的です。

© 1999-2001 OGIS-RI Co., Ltd.

Prev.

Index

Next