23
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

nilと0についての考察

Last updated at Posted at 2013-11-16

rubyのnilと0がおもしろい
どう面白いかというと


pp 'hoge' if true
#=> "hoge"

pp 'hoge' if false
#=> nil

これは当然ですね

次に


pp 'hoge' if 0
#=> "hoge"

pp 'hoge' if nil
#=> nil

おもしろい

0 は true を返し
nil は false を返すようです

まだ基本ですね

次に


pp 'hoge' if nil.to_i
#=> "hoge"

pp 'hoge' if nil
#=> nil

おもしろい

nil.to_i が 0 を返すように定義されているので
if nil.to_i は true で
if nil は false なんですね

nil.to_i はDBにNULLとか保存しちゃっててそれを含んだ和を計算したいときに強制的に0に変換してくれて例外処理的に便利なのかなって思ってます。

ついでに


''.to_i
#=> 0

true.to_i
#=> undifined method error

false.to_i
#=> undifined method error

なんかも知っておくと良いでしょう

個人的には


nil.nil?
#=> true

なんかが好きですね

誰もいない空間に「誰もいないよねー?」
って聞いたら
「うん、いないよー!」
って

ホラーですね

23
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?