ホソカワさん、上手です。
詳しい方のコメントがつくまで、ツナギでコメントしておきます。
#まだ動かし始めたばかりで、よくわからない。
On Sun, 9 Jul 2000 23:12:04 +0900
Kaoru Hosokawa <khosokawa@....com> wrote:
> ホソカワです。
>
> Javaへの変換、試みてみました。Smalltalkをちゃんと理解していないので、変なと
> ろがあります。
>
> > <Smalltalk>
> > === Page 197 Code 2
> >
> > ..SummarizerTest
> > 10:43:06
> > testABC
> > "self unsafRun:#testABC"
> > |summarizer summary|
> > summarizer:=self abcSummarizer.
> >
> > </Smalltalk>
> >
> >
> <Java>
> === Page 197 Code 2
>
> --SummarizerTest
> 10:43:06
>
> public void testABC() {
> Summarizer summarizer;
> Summary summary;
>
> summarizer = abcSummarizer();
> summary = summarizer.summary();
>
> assert(summary.size() == 3);
> assert(summary.first().name() == "a");
> assert(summary.first().amount() == 11);
> assert(summary.at(2).name() == "c");
> assert(summary.at(2).amount() == 2);
> assert(summary.last().name() == "b");
> assert(summary.last().amount() == 3);
> }
>
> 解説:
> 「"self unsafeRun:#testABC"」は、なんですか?変換していません。
””の中はコメントですので深い意味はなさそうです。
# は定数(リテラル)を示しますので、
self(自分の)unsafeRun メソッドを testABC のメソッド名を引数に呼び出すと
いうことになりますが、メモですかね。
> >
> > === Page 200
> >
> > Chet は collection に対するループを書く。要素をどう処理するかちょっと考え
> > てから、 processItem: の意向を宣言することを思い出して、続ける。
> >
> > <Smalltalk>
> > === Page 200 Code 1
> >
> > ___Summarizer
> > 10:52:32
> > process:aCollection
> > aCollection do:[:each|self processItem:each]
> >
> > 解説:
> > お願いします。
> >
> > </Smalltalk>
> >
>
> ここは、私のSmalltalkの知識を超えています。援助お願いします!eachは、なんで
> しょうか?
>
> <
do: は集合の全ての構成要素に同じ操作を行います。each: は | の後のコードで
各要素を参照するために、 each を使うことを示します。
例えば 配列に対して以下とすると
#(1 2 3 4 5)
do:[:each| Transcript show: each printString;cr].
出力は
1
2
3
4
5
となります。
(では)
> --
> Kaoru Hosokawa
> khosokawa@....com