[SML 7357] いまさら他人に聞けない話1

sunao furukawa sadie @ kind.ocn.ne.jp
2008年 3月 24日 (月) 10:19:15 JST


 古川直と申します。
 一応Cincomのオンラインチュートリアル2までやってみたのですがいくつか戸惑っ
たところがあるので投稿させていただきます。
 といっても少し恥ずかしい初歩的な質問かもしれません。実は私は「サクサク
Smalltalk」という本を持っています。その本の4章の7節目にメッセージの結合と
いう節があります。そこには,

(agenda item: 7) title: 'Plans'.

という行があります。そしてその解説として次のようにかかれていました。
「まずメッセージ item: 7 が agenda に送られ、次にメッセージ title: 'Plans'を
送り、結果のオブジェクトを得る。」。
 私がつまずいたのは「次にメッセージ title: 'Plans'を送り」という部分です。
というのも何にメッセージ title: 'Plans'を送るのか明確には記入されていません
でした。要するにメッセージ title: 'Plans'のレシーバが何なのかがわかりません
でした。その結果、チュートリアルの中の次のメソッドが理解できませんでした。
 具体的には、
start
filter := (Dialog request: 'フィルタを入力してください '
initialAnswer: 'ws00').
(filter size) > 0
ifTrue: [ self startHits.
self startPageCount.
Dialog warn: 'すべての統計を実行しました'. ]
ifFalse: [ Dialog warn: '問題なし。ごきげんよう'].

というコードのうちの「(filter size) > 0 」という部分が理解できませんでした。

 チュートリアルを読み進むうちに次のようなメソッドに突き当たりました。
start
 filter size > 0
 ifTrue:
  [self status: 'Processing...'.
  logFiles := self getLogFiles.
  self workHorse.
  self status: 'Processing Complete']
 ifFalse: [Dialog warn: 'Please enter a filter']

 ここで疑問になったのは、「filter size > 0」という部分です。
 比較してみて、何がわからないのかというと「(filter size) > 0 」は二項メッ
セージ「>0」のレシーバがfilterなのかどうかというところです。また、「filter
size > 0」はfilterに単項メッセージsizeを送り、それから帰ってきたオブジェクト
に二項メッセージ>0を送っているのかというところです。
 もしよろしかったらご教授ください。

 また、これも疑問なのですがCincomのオンラインチュートリアル2で作った配布イ
メージのサイズが10MBを超えました。皆さんが作るプログラムではどれくらいのファ
イルサイズになるのか興味があります。相場を知りたいです。どなたか教えてくださ
い。

 以上少し長いメールになりました。よろしくお願いします。



SML メーリングリストの案内