Rubyにもう少し深く触れるべく、Effective Rubyを少しずつ読んでいこうと思います。
この記事は勉強した際のメモ・感想・まとめです
- 作者: Peter J.Jones
- 出版社/メーカー: 翔泳社
- 発売日: 2015/01/19
- メディア: Kindle版
- この商品を含むブログ (5件) を見る
スポンサーリンク
Rubyは何を真と考えるか
if文で分岐を行う際、nullは真偽どちらか、0は真偽どちらにするのか、プログラミング言語によって定義されているが、Rubyはどのように定義されているのでしょうという話です。
結論をいうと、falseとnil意外はすべて真になります。
論理学的に言うと、偽は偽ですが、A => Bという論理式で、Aが存在しない場合はBの真偽によって評価するのですが、Bが存在しない場合は偽と評価します。なので、falseとnilだけが偽というのは納得できます。
では、if文でfalseとnilを区別したいときは、どうしましょう。
例えば、アプリケーションを作っているとき、nilの場合にだけ処理を行いたいなどの場合です。
このときは、nil?メソッドもしくは、==(ただし、falseが左に来る)を使います。
どちらかというと、nil?メソッドの方をよく使います。
==で区別する場合は注意が必要です。
Rubyでは演算子をオーバーライドすることができるので、falseを右にもってきてしまうと、オーバーライドした==演算子で比較を行っているかもしれません。なので、falseと等しいかどうかを見たいときは、falseを左側にし、Falseクラスの==演算子を使うようにしましょう。
感想
例外なく、falseとnilしか偽になりませんとなっていると覚えやすくてありがたいです。
また、書籍の構成も、最後にまとめがあってわかりやすく、1章ごとが数ページなので少しずつ読みやすい印象でした。
- 作者: Peter J.Jones
- 出版社/メーカー: 翔泳社
- 発売日: 2015/01/19
- メディア: Kindle版
- この商品を含むブログ (5件) を見る
- 作者: 高橋征義,後藤裕蔵,まつもとゆきひろ
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2016/02/26
- メディア: 単行本
- この商品を含むブログ (2件) を見る
- 作者: Paolo Perrotta,角征典
- 出版社/メーカー: オライリージャパン
- 発売日: 2015/10/10
- メディア: 大型本
- この商品を含むブログ (3件) を見る