2011年10月18日

ruby: nil? empty? blank? どれも0をチェックしない

よくつかうメソッドの nil? empty? blank? のまとめ。

nil? すべてのオブジェクトにある。nilのときにTrueを返す。
empty? 文字の長さが0のとき、配列が空のときにTrueを返す。

blank? railsの拡張。nil, "", " ", **, {} のいずれかでTrueを返す。

素晴らしいまとめですね!ootokageさんに感謝。

PHP使うときはempty(0)でtrueになりますが、上記のメソッドどれも0をチェックしないですね。。.zero?というのメソッドは一応あるようですが。

迷ったらここにいっぱいサンプルがあります。

0.nil? #=> false
0.zero? #= true
0.empty? #=> NoMethodError
0.blank? #=> false
0 == false #=> false

"".nil? #=> false
"".zero? #=> NoMethodError
"".empty? #=> true
"".blank? #=> true
"" == false #=> false

{}.nil? #=> false
{}.zero? #=> NoMethodError
{}.empty? #=> true
{}.blank? #=> true
{} == false #=> false

**.nil? #=> false
**.zero? #=> NoMethodError
**.empty? #=> true
**.blank? #=> true
** == false #=> false

nil.nil? #=> true
nil.zero? #=> NoMethodError
nil.empty? #=> NoMethodError
nil.blank? #=> true
nil == false #=> false

false.nil? #=> false
false.zero? #=> NoMethodError
false.empty? #=> NoMethodError
false.blank? #=> true
false == false #=> true
Share on Twitter Share the post
Qihuan Piao

朴 起煥

東京で働いている「外人歴」9年のソフトウェア「ライター」。いつの間にか納豆が食えるようになり、これで日本に慣れきったと思いきやまだまだ驚きが続いてる。読んだり書いたりするのが好きで、自身の経験や本から得た「何か」をここに書き出してる。最近古本屋にハマってる。

他にも英語中国語で書いてます、よろしければチェックしてみてください。