南極の図書館

ペンギンが寝ていた…。

Rubyまるごと学習ブック3日目。(一度終わり)

昨日の続きでメモ。P68〜P98(終わり)


・オープンクラス:誰でも自由にクラスの定義を変更できる。
ということで、P72にとんでもない例が。

class NilClass
 def size
  0
 end
end

組み込みクラスのNilClassにsizeメソッドを追加することでヌルオブジェクトパターンを実現する…。
豪快すぎて笑ってしまう。Rubyすごい。

・splitの引数に""(空文字)を入れると一文字区切りで分割した配列が入る。
JavaRubyは多重継承を禁止している。(ダイヤモンド継承などの問題から)
Rubyは動的片付け言語なのでシグネチャに型情報がつかず、Javaのようなinterfaceはあまり意味をなさない。
・Mix-in:クラスにmoduleを混ぜ込む。(include aaaa)
・モジュールはインスタンス化できない。継承関係を持てない。
・mapは各要素に特定の処理を行い新たな配列を作る(arr.map{|i| i*i}で、arrの各要素を二乗。)
・mapはEnumerableモジュール。Arrayクラス、IOクラスがMix-inしている。


なんというか。
特に「第5回」を見るといろいろと考えさせられる。


プログラミングは論理だと思っていたが、ある本でケントベックは「精神状態が大事だ」と言った。
それは、正しい論理を導くために正しい精神状態が必要と言いたいのだろうと私は理解していた。
でも、それだけでは無いのだろう。
この学習ブックは、感情と論理が。論理とはプログラムの勉強だが。それらが絡み合うシナリオだった。
私が出会った今までの「初心者向けの学習書」はシナリオは無かったと言っていい。
感情移入しながらプログラミングをするのは初めてだった。
なお、Railsについて書かれた「第六回」については割愛する。