Which Values Are Considered Falsy in Ruby?

In Ruby, only the following two values are considered falsy (i.e. objects that evaluate to false in a boolean context):

  1. false;
  2. nil.

For example, when you use either of these in a conditional statement, they're evaluated to boolean false:

if nil
    puts "not printed"
else
    puts "printed"
end

#=> "printed"
if false
    puts "not printed"
else
    puts "printed"
end

#=> "printed"

Other than these two values, everything else in Ruby is considered a truthy value, including an empty array, empty string, 0, etc.:

if []
    puts "is truthy"
end

#=> "is truthy"
if ""
    puts "is truthy"
end

#=> "is truthy"
if 0
    puts "is truthy"
end

#=> "is truthy"

This post was published by Daniyal Hamid. Daniyal currently works as the Head of Engineering in Germany and has 20+ years of experience in software engineering, design and marketing. Please show your love and support by sharing this post.