? true : false returns nil?

R

Russ Cordner

I have the following code fragment:

i = 1
j = case i
when 1
true
else
false
end

I would expect j to equal true after the run, but it equals nil. If I
change the return values to anything else but true and false, it works
as expected. Am I missing some special handling of true and false?
Thanx.
 
D

Don Wood

Russ said:
I have the following code fragment:

i = 1
j = case i
when 1
true
else
false
end

I would expect j to equal true after the run, but it equals nil. If I
change the return values to anything else but true and false, it works
as expected. Am I missing some special handling of true and false?
Thanx.

I just tried this, and couldn't replicate your result. What Ruby are
you using?

$ irb -v
irb 0.9.5(05/04/13)
$ irb
irb(main):001:0> i = 1
=> 1
irb(main):002:0> j = case i
irb(main):003:1> when 1
irb(main):004:1> true
irb(main):005:1> else
irb(main):006:1* false
irb(main):007:1> end
=> true
irb(main):008:0> true ? true : false
=> true
irb(main):009:0> false ? true : false
=> false
irb(main):006:0> 1 ? true : false
=> true
irb(main):005:0> nil ? true : false
=> false
 
R

Russ Cordner

Russ said:
I'm using ruby 1.8.5 on Linux Centos under the Netbeans IDE.

Its a bug in the Netbeans IDE. The IDE says it's still nil, but a puts
reveals the correct value. Thanx Don!
 
D

Darryl L. Pierce

Russ Cordner said:
I have the following code fragment:

i = 1
j = case i
when 1
true
else
false
end

I would expect j to equal true after the run, but it equals nil. If I
change the return values to anything else but true and false, it works
as expected. Am I missing some special handling of true and false?
Thanx.

(apologies for replying by email previously)

I tried the above and it worked for me as expected:

irb(main):023:0> i = 1
=> 1
irb(main):024:0> j = case i
irb(main):025:1> when 1
irb(main):026:1> true
irb(main):027:1> else
irb(main):028:1* false
irb(main):029:1> end
=> true
irb(main):030:0> j
=> true
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,581
Members
45,057
Latest member
KetoBeezACVGummies

Latest Threads

Top