🌟

Ruby で nil.to_a は [] を返す

に公開

実は知らなくてぎょっとしたって話なだけなんですが Ruby で nil.to_a を呼び出すと [] が返ってきます。

p nil.to_a
# => []

なんとなく nil が返ってくるのかなーと思ってたけどよくよく考えると #to_a は配列を返すことを期待しているので [] が返ってくるのは当たり前といえば当たり前か。

その他の to_x メソッド

nil.to_a[] を返したけどそれ系の他のメソッドは何を返すんだろう、といろいろと試してみました。

require "json"

p nil.to_h    # => {}
p nil.to_i    # => 0
p nil.to_f    # => 0.0
p nil.to_s    # => ""
p nil.to_r    # => (0/1)
p nil.to_json # => "null"

いずれもそれっぽい値を返しているみたですねー。

GitHubで編集を提案

Discussion