[Ruby]真偽判定、present?メソッド

present?メソッドとは

オブジェクトの中に値が格納されているのかを判定するメソッドで、値があればtrue(真)、なければfalse(偽)を返す。

*present?を使用するためには、gemが提供しているActiveSupportをインストールする必要がある。

参考例

① 
num = 1
1.present?  => true

num = nil
nil.present?  => false

num = 0
0.present?  => true

② 
str = "lotte"
"lotte".present?  => true

str = ""
"".present?  => false

③ 
bool = true
true.present?  => true

bool = false
false.present?  => false

①数値が入っていればtrueだが、nilだとfalseが返る。

②空文字だとfalse。

③bool値がtrueだとtrue、falseだとfalseが返る。

ハッシュや配列の場合

hash = {}
p hash.present?
=> false
 
array = []
p array.present?
=> false

配列内の要素ごとに、値があるかどうかを判定したい場合

array = Array["ogino", "fujiwara", "", "nakamura", ""]

array.each{|var|
  p var.present?
}

true
true
false
true
false

配列に文字列がある1,2,4個目はtrue、空文字がある3,5個目はfalseが返る。

タイトルとURLをコピーしました