Hyurakuのエンジニア日誌

SE出身Webエンジニアのブログ

Effective Rubyの備忘録その1 #28

最近先輩のエンジニアに勧められて読み始めたEffective Rubyの内容を備忘録がてらまとめてみた。

Effective Ruby

Effective Ruby

項目1 Rubyは何を真(true)と考えているか正確に理解しよう

  • Rubyでは、falsenil以外すべての値が真である

    もちろん0も真である。

> p 'true' if 0
'true'
  • falsenilを区別するときはnil?メソッドを使おう

    ちなみにfalseであるかを確認するときは、左の被演算子falseにする==演算子を使う方法もある。

if false == x

end

左にfalseを配置する理由は次のとおりである。
- イミュータブル(作成後にその状態を変えることのできない状態)な定数は当地演算子の左側で使うべきというルールに基づいている。
- 右側に配置した場合、比較の基準を変えてしまう場合がある。

false == x
=> FalseClass==メソッド呼び出し
x == false
=> Object==メソッド

class Sample
  def == (other)
    true
  end
end
false == Sample.new
> false
Sample.new == false
> true