1 00:00:00,120 --> 00:00:02,360 このセッションでは 2つのことをお教えします。 2 00:00:02,520 --> 00:00:06,840 シーケンスとカスケードです。 どちらも Pharo ではよく使われています。 3 00:00:07,520 --> 00:00:13,000 一連のメッセージを書くことがよくあります。 4 00:00:13,160 --> 00:00:14,640 それらのメッセージには区切りが必要です。 5 00:00:14,800 --> 00:00:17,800 例にあるように ピリオドで区切ります。 6 00:00:17,960 --> 00:00:22,600 ここにあるように Transcript cr. 7 00:00:22,760 --> 00:00:27,760 トランスクリプト(Transcript)は メッセージを記録する簡単なツールです。 8 00:00:27,920 --> 00:00:31,400 改行したい。 1というオブジェクトを表示したい。 9 00:00:32,320 --> 00:00:36,360 2を表示したい。 ピリオドを使います。 10 00:00:37,040 --> 00:00:39,800 表現式はピリオドで区切ります。 11 00:00:41,600 --> 00:00:44,160 別の例を見てみましょう。 12 00:00:44,320 --> 00:00:47,320 2つのローカル変数を定義しました。 13 00:00:47,960 --> 00:00:51,640 ワークステーションを定義しました。 ネットワークシミュレータです。 14 00:00:51,800 --> 00:00:55,600 この表現式の末尾にピリオドを書きます。 15 00:00:55,760 --> 00:00:59,600 そして次の表現式が続きます。 ここでピリオドを使うこともできます。 16 00:00:59,760 --> 00:01:03,520 説明した通り、ピリオドは区切りです。 終末記号ではありません。 17 00:01:03,680 --> 00:01:06,560 Javaでは必ずセミコロンをつけなければなりません。 18 00:01:06,720 --> 00:01:08,480 Pharoでは必ずしもピリオドは必要ありません。 19 00:01:09,840 --> 00:01:14,680 初心者はちょっと戸惑うかもしれませんが 20 00:01:14,840 --> 00:01:19,280 パイプ(縦棒)はローカル変数の定義です。 21 00:01:19,440 --> 00:01:21,320 これについては別のレッスンで説明します。 22 00:01:21,480 --> 00:01:23,880 ここではピリオドは使いません。 23 00:01:24,040 --> 00:01:27,480 通常、まずはローカル変数を定義してから 表現式が始まります。 24 00:01:27,640 --> 00:01:30,400 最初の表現式の後で ピリオドを使います。 25 00:01:30,560 --> 00:01:32,680 それとは別に 26 00:01:32,840 --> 00:01:37,320 同じオブジェクトにいくつかのメッセージを 送りたいことがしばしばあります。 27 00:01:37,480 --> 00:01:41,000 億劫なので レシーバーを何度も繰り返したくはありません。 28 00:01:41,160 --> 00:01:42,600 これを見てください。 29 00:01:42,760 --> 00:01:46,280 Transcript cr. 続いて Transcript show: Transcript... 30 00:01:46,440 --> 00:01:49,720 もう3回も Transcript と言いました。 31 00:01:49,880 --> 00:01:52,600 そこでカスケードを使うことができます。 セミコロンを使います。 32 00:01:52,760 --> 00:01:54,720 Transcript cr; と書いて 33 00:01:54,880 --> 00:01:58,000 トランスクリプトに cr メッセージを送ります。 34 00:01:58,160 --> 00:01:59,480 カスケードは 35 00:01:59,640 --> 00:02:04,120 「ここから、全てのメッセージは最初のメッセージの レシーバーと同じオブジェクトに送られます」という意味です。 36 00:02:04,280 --> 00:02:07,120 Transcript に show: 1 が送られ 37 00:02:07,280 --> 00:02:08,920 そして show: 2 が Transcript に送られます。 38 00:02:09,560 --> 00:02:12,640 ややこしい部分なので もう一度説明します。 39 00:02:14,320 --> 00:02:17,400 最初のメッセージを通常通りに送ります。 40 00:02:17,560 --> 00:02:21,520 ピリオドの代わりにセミコロンを使います。 41 00:02:21,680 --> 00:02:25,280 セミコロンはそれぞれのメッセージが最初と同じ レシーバーに送られることを意味します。 42 00:02:25,440 --> 00:02:27,280 show: 1 が同じレシーバーに送られます。 43 00:02:27,440 --> 00:02:30,600 セミコロンは show: 2 が同じレシーバーに送られるという意味です。 44 00:02:32,240 --> 00:02:36,520 別の例です。 コレクションを作りたいとします。 45 00:02:36,680 --> 00:02:40,720 コレクションが手元にあって 変数 c を定義します。 46 00:02:40,880 --> 00:02:44,480 c のコレクションに書き込みます。 ここにピリオドがありますね? 47 00:02:44,640 --> 00:02:47,240 1 と 2 をコレクションに追加(add)します。 48 00:02:47,400 --> 00:02:49,960 これら2つの式は同じ形をしています。 49 00:02:50,120 --> 00:02:52,920 つまり OrderedCollection new 50 00:02:53,080 --> 00:02:57,240 としてコレクションを作って、それから最初のメッセージ add: 1 を送って要素を追加します。 51 00:02:57,400 --> 00:03:01,360 セミコロンがあるので このメッセージはこのコレクションに送られます。 52 00:03:01,520 --> 00:03:04,080 Pharo 初心者の皆さんへのアドバイスですが 53 00:03:04,240 --> 00:03:07,080 無理にカスケードを使わないでください。 54 00:03:07,240 --> 00:03:10,240 カスケードを説明するのは あなたがきっとコードを読むからです。 55 00:03:10,400 --> 00:03:12,120 カスケードはコードの中で使われています。 56 00:03:12,280 --> 00:03:16,360 もしこの構文やピリオドに違和感なく 気持ちよく付き合えるようになったら 57 00:03:16,520 --> 00:03:20,320 もっと柔軟になって 58 00:03:20,480 --> 00:03:23,640 カスケードを使うことを考えるようになるでしょう。 私もそうやって学びました。 59 00:03:23,800 --> 00:03:27,160 1歩ずつ進んでいきましょう。 60 00:03:27,320 --> 00:03:29,160 今回、何を学んだでしょう? 61 00:03:29,320 --> 00:03:33,360 . は区切り記号です。 およそ Java の ; のようなものです。 62 00:03:33,520 --> 00:03:38,840 ; はカスケードです。 同じレシーバーを繰り返し書くことを避けるのに有効です。 63 00:03:39,000 --> 00:03:43,640 カスケードの値は 最後に送られたメッセージの返り値です。