File tree Expand file tree Collapse file tree 1 file changed +11
-3
lines changed Expand file tree Collapse file tree 1 file changed +11
-3
lines changed Original file line number Diff line number Diff line change @@ -9,26 +9,34 @@ Sorry, this is written in Japanese.
99
1010# self.whenからself.を取り除いたRubyの命令を検討する
1111
12- ` :flags: が押されたとき ` などの各種イベントに対応したブロック(以下、イベントブロック)からRubyの命令へ変換すると ` self.when(:flag_clicked) do ~ end ` のように ` Sprite#when ` メソッドにマッピングされる。
12+ イベントカテゴリの ` フラグが押されたとき ` 、 ` [スペース▼]キーが押されたとき ` などの各種イベントに対応したブロック(以下、イベントブロック)は、 ` self.when(:flag_clicked) do ~ end ` のように Ruby では ` Sprite#when ` メソッドにマッピングされる。
1313
1414``` ruby
15+ # フラグが押されたとき
1516self .when(:flag_clicked ) do
1617end
1718
19+ # [スペース▼]キーが押されたとき
1820self .when(:key_pressed , " space" ) do
1921end
2022
23+ # [音量▼] > (10) のとき
2124self .when(:greater_than , " loudness" , 10 ) do
2225end
2326```
2427
25- イベントブロックは多用されるため、これが不自然なものであれば、スモウルビーを通じてRubyの文法を学習するときに問題となる。
28+ ` self.when ` には次の課題がある。
29+
30+ - Ruby では、publicなメソッドの呼び出しは通常は ` self. ` を省略するが、` when ` は予約語であるため、常に ` self. ` を記述する必要がある
31+ - Ruby では、予約語をメソッド名に使うことはできるが、それを推奨するといった説明はどこにもない
32+
33+ イベントブロックは多用されるため、これが不自然なものであれば、スモウルビーを通じてRubyの文法を学習するときに問題となることを懸念している。
2634
2735そこで、イベントブロックから Ruby の命令へのマッピングとして ` self.when ` ではない別の選択肢を検討する。
2836
2937## 判断基準や制限
3038
31- * Rubyの文法を学べること
39+ * Rubyの文法を自然に学べること
3240* Rubyの初学者に受け入れられるように入門書で扱うRubyの文法や仕組みを使うこと
3341 * 現状の「予約語 when を上書きする」というのは中級者以上を想定したものだと認識している
3442* ブロックとRubyの相互変換処理の実装が簡単であること
You can’t perform that action at this time.
0 commit comments