0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【PHPからRuby学習】nilってnullと違うんですか?と思ったので備忘録

Posted at

PHP4年生からRubyを学び始めた初心者です。

PHPと似ているところがあるよ〜ってインターネットで見たので学んでみるか(^o^)
という安易な気持ちで学び始めたが、なんかちょこちょこ違うぞ...となっている。

今回はnilについて学んだのでメモとしてアウトプット。

結論

nullと同じか?と思って調べてみた

ほぼ同じっぽい。
でも、nilはNilClassというクラスのオブジェクトらしい。
Rubyではすべての値をオブジェクトとしているからnilもオブジェクトになる。

オブジェクトが所属しているクラスのメソッドでnil判定ができる。

判定できるメソッドについて

nil?

対象のオブジェクトがnilだったらtrueを返す。
それ以外であればfalseを返す。

empty?

対象のオブジェクトが空文字と空配列の時にtrueを返す。
値が存在している場合はfalseを返す。

また、nilで使用するとエラーが発生する。(NoMethodError)


nil.empty?      => undefined method `empty?' for nil:NilClass

NilClassにはないメソッドだから判定できないっすってことですね。

blank?

対象のオブジェクトがnil、空文字、空配列、半角スペース''の時に
trueを返す。

値が存在している場合はfalseを返す。

結構、判定が甘いというか対象の範囲が広い気がする。

上記のコメント参照させてもらう。

blank? は空白文字からなる文字列でも true を返します。


"\x20\t\r\n\u00A0\u2002\u3000".blank?
# => true

空白文字でもtrueになるっぽい。

present?

対象のオブジェクトが存在しているかどうかで使用するメソッド。
blank?の逆の判定を行う。

対象のオブジェクトが存在している場合にtrueを返す。
対象のオブジェクトがnil、空文字、空配列、半角スペース''の時にfalseを返す。

参考

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?