前回から継続してコツコツ読んでいる。 Chapter4 から先に読んだので、そこから逆戻りして Chapter 1, 2, 3, 5 ... の順に進めている。アラカルトに気になったところをメモ。
Chapter3: 変数
- 変数名の長さはスコープの広さと反比例させる
- メソッドの場合は呼び出し回数と反比例させる
- Ruby に限らずどの言語でも有用な法則
- 定数の内部実装は変数
- 値の変更も禁止されていない
- 警告が出るだけ
- クラス変数は使ってはいけない。
- グローバル変数も使わない方がよい
- 代用方法1: 定数+instance_eval
- 代用方法2: シングルトンクラスで置き換えられる
- メソッドコールのコストをどうしても払いたくない限は代用方法で書くのがよさそう
- シングルトンクラスの方法しか知らなかったけど、instance_eval はなんか恰好よいのでどこかで使ってみたい
Chapter5: 例外
※ まだ途中
- hash#[] のキーが見つからないとき Ruby だと nil を返して Python は例外を返す
- それぞれ逆をするために fetch(Rubyで例外出す) と get(Pythonでデフォルト値返す) が用意されている
- この辺り言語の特徴を表していて大変面白い
おわり
第1部までは頑張って原著で読んで、その後は研鑽Rubyプログラミングの pdf で読む予定。