# Question about the evaluation of x = 'foo' if false

**URL:** <https://www.ruby-forum.com/t/question-about-the-evaluation-of-x-foo-if-false/185458>\
**Category:** Ruby\
**Created:** [March 20, 2010, 1:40pm UTC](https://www.ruby-forum.com/t/question-about-the-evaluation-of-x-foo-if-false/185458 "2010-03-20T13:40:52Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![AnSSS\_bal\_Rojas](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/a8b319/32.png) [@AnSSS\_bal\_Rojas](https://www.ruby-forum.com/u/AnSSS_bal_Rojas)\
**Post date:** [March 20, 2010, 1:40pm UTC](https://www.ruby-forum.com/t/question-about-the-evaluation-of-x-foo-if-false/185458/1 "2010-03-20T13:40:52Z")

</div>

Hello,

I am kind of lost with the nil result while I am expecting a false:

irb(main):001:0\> x = ‘foo’ if false  
=\> nil  
irb(main):002:0\> x  
=\> nil  
irb(main):003:0\> x = ‘foo’ if true  
=\> “foo”  
irb(main):004:0\> x  
=\> “foo”

Thanks in advance for sharing your knowledge,

---

<div class="post-metadata">

**Author:** ![AnSSS\_bal\_Rojas](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/a8b319/32.png) [@AnSSS\_bal\_Rojas](https://www.ruby-forum.com/u/AnSSS_bal_Rojas)\
**Post date:** [March 20, 2010, 1:42pm UTC](https://www.ruby-forum.com/t/question-about-the-evaluation-of-x-foo-if-false/185458/2 "2010-03-20T13:42:02Z")

</div>

On Mar 17, 12:01 pm, Aníbal Rojas [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> irb(main):004:0\> x  
> =\> “foo”
> 
> Thanks in advance for sharing your knowledge,
> 
> –  
> Anìbal Rojas

See  
[http://www.ruby-doc.org/docs/ProgrammingRuby/html/tut\_expressions.html#UH](http://www.ruby-doc.org/docs/ProgrammingRuby/html/tut_expressions.html#UH)  
‘if’ doesn’t return the logical value it evaluates, it returns the  
value of the last statement  
executed, in the false case nothing is executed, and nil is Ruby’s  
nothing value

Cheers

---

<div class="post-metadata">

**Author:** ![AnSSS\_bal\_Rojas](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/a8b319/32.png) [@AnSSS\_bal\_Rojas](https://www.ruby-forum.com/u/AnSSS_bal_Rojas)\
**Post date:** [March 20, 2010, 1:43pm UTC](https://www.ruby-forum.com/t/question-about-the-evaluation-of-x-foo-if-false/185458/3 "2010-03-20T13:43:12Z")

</div>

On Mar 17, 12:01 pm, Aníbal Rojas [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> irb(main):004:0\> x  
> =\> “foo”
> 
> Thanks in advance for sharing your knowledge,

Another way to think about it is that the above constructs are  
alternate ways of expressing the following:

if false then x = ‘foo’ end  
if true then x = ‘foo’ end

– Mark.

---

<div class="post-metadata">

**Author:** ![AnSSS\_bal\_Rojas](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/a8b319/32.png) [@AnSSS\_bal\_Rojas](https://www.ruby-forum.com/u/AnSSS_bal_Rojas)\
**Post date:** [March 20, 2010, 1:48pm UTC](https://www.ruby-forum.com/t/question-about-the-evaluation-of-x-foo-if-false/185458/4 "2010-03-20T13:48:29Z")

</div>

Thanks for your responses!

–  
Aníbal
