「Effective Ruby」を読んだ

「Effective Ruby」を読んだ

Effective Rubyを読んだので、感想や気になった点などを書こうかなと思いました。

項目2 オブジェクトを扱うときにはnilかもしれないということを忘れないようにしよう

ダックタイピングとは、isa?メソッドではなくrespondto?メソッドを使うようにせよということである。

全然記憶のかなたでしたが、分かりやすく納得のいく説明文だと思いました。

項目3 Rubyの暗号めいたPerl風機能を避けよう

Englishライブラリとか良く使われているのかな??私は、一回も使われていることを見たことが無い。

cf. library English

項目7 superのふるまいがひと通りではないことに注意しよう

superとsuper()の挙動の違いをいつも忘れてしまう...

superは、呼び出し元メソッドに与えられた全ての引数を渡す。super()は、引数を一つも渡さないとのこと。

項目17 nil、スカラーオブジェクトを配列に変換するには、Arrayメソッドを使おう

Arrayで、オブジェクトを包むとArrayでなくてもArrayとして扱えるようになって便利になります。下記にサンプルコードを示します。

class A
  attr_reader :values

  def initialize(values)
    @values = Array(values)
  end
end

p A.new(1).values # [1] 配列を渡さなくても、配列になる
p A.new([1, 2]).values # [1, 2] 配列を渡しても配列のまま
p A.new(nil).values # [] nilを渡しても空の配列になる