In Ruby, you can convert a boolean to an integer in either of the following ways:
Using Conditionals
You can employ various conditionals such as the ternary operator, if/else
, or case
statements to determine whether a value is true
or false
, and then return 1
or 0
accordingly.
For example:
def bool_to_int(bool)
return bool ? 1 : 0
end
puts bool_to_int(true) #=> 1
puts bool_to_int(false) #=> 0
Using Short-Circuit Evaluation
You can leverage short-circuit logical operators (&&
and ||
) for boolean-to-integer conversion. This method capitalizes on the behavior of short-circuit evaluation in Ruby, where the expression stops being evaluated as soon as the final result is determined. For example, if the first part of an &&
expression is false
, there's no need to evaluate the rest since the result will always be false
.
Therefore, you can use the following expression to convert boolean to integer:
def bool_to_int(bool)
return bool && 1 || 0
end
puts bool_to_int(true) #=> 1
puts bool_to_int(false) #=> 0
The short-circuit evaluation works like this:
false && (anything)
is short-circuit evaluated tofalse
;true || (anything)
is short-circuit evaluated totrue
.
Hence, the expression bool && 1 || 0
evaluates as follows:
true && 1 || 0 #=> 1
false && 1 || 0 #=> 0
This approach provides a concise way to convert true
to 1
and false
to 0
.
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.