小林です。


> ごとけんです
はじめまして。

>
>   * クラス名は大文字ではじまる。英数字と _ で構成されている。
>
39頁の補足(*12)に「クラス名は大文字...」とありました。
これは、本文にあったほうがよいかなと思いました.
実際に小文字から始まるクラス名を定義するとエラーになったので
推測はできました。

>
> >2.Ruby本50ページ
> >  []はオブジェクトなのでしょうか?
> >  (多分オブジェクト。でも、ここでは....)
> >   また、なんで[]でなくてはいけないのでしょうか?
>
> [] は空の配列(Arrayのインスタンス、つまりオブジェクト)です。
> 分かんなかったらまたきいて下さい。
つまり、定数にオブジェクト(の参照)を一回だけ代入して使用する
ということだと推察しました。ならば、CVAR[1],CVAR[2]と使用できる
ということですね?

>
> まず throw が投げるのは例外ではなく catch が拾うための名札と
> 値の組です。例外は throw,catch ではなく raise で起こし begin
> の rescue 節で拾います。Rubyの throw と catch の目的は大域脱
> 出と値を投げることにあり、障害復旧の処理を行うことではありま
> せん。
「例外」という言葉を、安易に使ってしまいました。C++でも、障害復旧
目的以外に(大域脱出のために)、try/throw/catchをよく使うので、
その点では同じだと判断しました。ただ、C++ではthrowしないと
catchは実行されないのでちょっと気になった次第です。

>throwが投げる値のデフォルトはnilです。次の例は、結果的
> に x = num > 0 ? num : nil と同じ働きをします。
>
>   x = catch(:hoge){ throw(:hoge) unless num > 0; num }
>
ーん。もし、num>0ならthrowは実行されないので、ブロックの
最後の値になるということですね。throwしないのに、こぼれた
numの値を「catch」するってことになる...(しつこくてすいません)

> >  Mix-inを活用することでメソッドの干渉などがどのように防げるのか
> >  いまひとつ理解できません.
>
>クラスは1本線の枠なので木構造です。
rubyは多重継承を許さない以上1本線はわかります。
ただ、このこととMix-inをあえて強調している説明がなかなか結びつきま
せん。実際にプログラムを作成していく段階で自然にわかってくると思い
ますが...

> 特にどの辺が分からないかをなにか実例をあげて下さると他の方も
> 説明しやすいかも知れません。あるいは慣れたら自然と分かるかも
> 知れません ^^;;;;
>
残念ながら、実例をあげられるほど理解できていません。
これに関しては、実際にプログラミングしてみて理解するほうが早そうで
すね.このままでも、先に読み進むことはできていますので.

>
> 一般的な傾向として、具体的な短いコードサンプルを上げてもらう
> と話がしやすいです。
>
まったく、その通りですね。気をつけます。
まだ、テスト的に動かしているだけなので、そのうちサンプルを
出せるようになると思います.

忙しい中、丁寧に解説していただいてありがとうございました。

小林 茂雄
E-Mail: shigeo / tinyforest.gr.jp
Home Page: http://www.tinyforest.gr.jp