項目1 Rubyは何を真と考えているかを正確に理解しよう
以下のコードを見て
一瞬あれ?となりました。
class Bad def == (other) true end end ?> false == Bad.new => false ?> Bad.new == false => true
最後のは、methodの戻り値が返っていました。
Object#==
のoverrideを考慮して、== false
は使わない方が良いとのこと。
なるほど。
これは覚えておこう。
覚えておく事項
- false、nil以外の全ての値は真である。
- 多くの言語とは異なり、Rubyでは数値ゼロは真である。
- falseとnilを区別しなければならないときには、
nil?
メソッドを使うか、falseを左被演算子とする==
演算子を使おう。
- 作者: Peter J. Jones,arton,長尾高弘
- 出版社/メーカー: 翔泳社
- 発売日: 2015/01/09
- メディア: 大型本
- この商品を含むブログ (13件) を見る