LoginSignup
1
0

More than 1 year has passed since last update.

Rubyのnil?とempty?とblank?の違いとpresent?

Last updated at Posted at 2019-05-04

nil?はnilだけtrue、empty?よりblank?の方が幅広く使える、present?はblank?の否定

Rubyのメソッドでnil?とempty?とblank?の違いが分からなかったのでまとめました

テストコードのバリデーションで、「リクエストパラメータが空白とかnilとかの場合に、このバリデーションをかけたい!」という判定にはblank?メソッドを使うといいと思います!

nil?メソッド

nil?はnilの時だけtrue


nil.nil?
=> true

[].nil?
=> false

{}.nil?
=> false

"".nil?
=> false

false.nil?
=> false

empty?メソッド

empty?は入れ物はあるが中身がない時true


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

[].empty?
=> true

{}.empty?
=> true

"".empty?
=> true

"       ".empty?
=> false

false.empty?
NoMethodError: undefined method `empty?' for false:FalseClass

blank?メソッド

blank?はempty?より範囲が広い

Railsでは使えるけど、rubyだけでは使えない


nil.blank?
=> true

[].blank?

=> true

{}.blank?
=> true

"".blank?
=> true

"       ".blank?
=> true

false.blank?
=> true

present?はblank?の否定

参考
http://railsdoc.com/references/blank

おわりに

最後まで読んでいただきありがとうございました。
QiitaやTwitterなどにコメントをしてもらったり、SNSでシェアしてもらえるとうれしいです!

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