[lnkForumImage]
TotalShareware - Download Free Software

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


 

Forums >

comp.lang.ruby

and in ternary operator

Parv G.

6/4/2009 7:14:00 PM

hi,

i would like to do something like the following

if true
do_a
else
d_a
d_b
end

Can this be done using ternary operator?

This seem to give different result:
ifTrue ? do_a : do_a and do_b

Thank you.
--
Posted via http://www.ruby-....

6 Answers

Joel VanderWerf

6/4/2009 7:20:00 PM

0

Parv G. wrote:
> hi,
>
> i would like to do something like the following
>
> if true
> do_a
> else
> d_a
> d_b
> end
>
> Can this be done using ternary operator?
>
> This seem to give different result:
> ifTrue ? do_a : do_a and do_b
>
> Thank you.

result = false ? nil : (x=1; x+=10; x)
p result # ==> 11

--
vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407

Pieter V.

6/4/2009 7:23:00 PM

0

On Thu, Jun 4, 2009 at 12:13 PM, Parv G. <ghotrapa@yahoo.com> wrote:
> hi,
>
> i would like to do something like the following
>
> if true
> =C2=A0do_a
> else
> =C2=A0d_a
> =C2=A0d_b
> end
>
> Can this be done using ternary operator?
>
> This seem to give different result:
> ifTrue ? do_a : do_a and do_b

If the goal is to always run the truthy condition and optionally some
extra code for the falsey one, this will work as well:

do_a ; do_b if ifTrue

>
> Thank you.
> --
> Posted via http://www.ruby-....
>
>

Rolando Abarca

6/4/2009 7:30:00 PM

0

On Jun 4, 2009, at 3:13 PM, Parv G. wrote:

> hi,
>
> i would like to do something like the following
>
> if true
> do_a
> else
> d_a
> d_b
> end
>
> Can this be done using ternary operator?
>
> This seem to give different result:
> ifTrue ? do_a : do_a and do_b

since you always "do_a", why no execute it always?

do_a
do_b if true

>
regards,
--
Rolando Abarca M.





Brian Candler

6/4/2009 8:55:00 PM

0

Parv G. wrote:
> hi,
>
> i would like to do something like the following
>
> if true
> do_a
> else
> d_a
> d_b
> end
>
> Can this be done using ternary operator?
>
> This seem to give different result:
> ifTrue ? do_a : do_a and do_b

'and' is very low precendence operator, and also will only do_b if the
result of do_a is true.

ifTrue ? do_a : (do_a, do_b)
--
Posted via http://www.ruby-....

Nobuyoshi Nakada

6/4/2009 11:42:00 PM

0

Hi,

At Fri, 5 Jun 2009 05:54:48 +0900,
Brian Candler wrote in [ruby-talk:338415]:
> ifTrue ? do_a : (do_a, do_b)

You need a semicolon instead of a comma.

--
Nobu Nakada

Brian Candler

6/5/2009 12:23:00 PM

0

Nobuyoshi Nakada wrote:
> Brian Candler wrote in [ruby-talk:338415]:
>> ifTrue ? do_a : (do_a, do_b)
>
> You need a semicolon instead of a comma.

Sorry, that's me with my C head on :-)
--
Posted via http://www.ruby-....