[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

? true : false returns nil?

Russ Cordner

4/15/2009 5:04:00 PM

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.
--
Posted via http://www.ruby-....

4 Answers

Don Wood

4/15/2009 5:12:00 PM

0

Russ Cordner wrote:
> 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
--
Posted via http://www.ruby-....

Russ Cordner

4/15/2009 5:20:00 PM

0

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

I'm using ruby 1.8.5 on Linux Centos under the Netbeans IDE.
--
Posted via http://www.ruby-....

Russ Cordner

4/15/2009 5:25:00 PM

0

Russ Cordner wrote:
>>
>> I just tried this, and couldn't replicate your result. What Ruby are
>> you using?
>>
>
> 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!
--
Posted via http://www.ruby-....

Darryl L. Pierce

4/16/2009 2:38:00 PM

0

Russ Cordner <russ.cordner@apptis.com> wrote:
> 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

--
Darryl L. Pierce <mcpierce@gmail.com>
http://mcpierce.mul...
"What do you care what people think, Mr. Feynman?"