[MacRuby-devel] Weird behaviour for a weird line of code

Ryan Davis ryand-ruby at zenspider.com
Tue Nov 16 15:22:06 PST 2010


On Nov 16, 2010, at 14:14 , Eric Christopherson wrote:

> I'm not sure I understand what you mean. Are you saying it's bad to do
> the *first* assignment to a variable inside a conditional? Or it's bad
> to assign inside a conditional in any case? I can understand the
> first, but I'm not sure how you would work around the second, unless
> you used a more functional style like
> 
> x = (n > 2 ? true : false)
> 
> or
> 
> x = (if n > 2; true; else false; end)

this is not an assignment inside a conditional. It is a conditional inside an assignment. And as Jeff pointed out, while just an example, it is a very contrived example (that hits one of my biggest pet peeves).

an assignment inside a conditional is

do_something(x) if x = logical_statement

or

if x = logical_statement then
  do_something(x)
else
  do_something_else
end

and whether you're coding in ruby, C/++, or whatever... it is almost always considered bad form. Avoid it not only for the reasons I mentioned before, but also to avoid the beat downs you'll get whenever you ask for our community's help. I cannot guarantee your safety otherwise.



More information about the MacRuby-devel mailing list