From: Stefan Kaes Date: 2005-11-24T00:29:25+09:00 Subject: Re: semenatics of if/unless/while statement modifiers David A. Black wrote: > We're going around in circles, but the point still doesn't seem to be > clear. > > Ruby sees a difference between: > > if n = x > > and > > if n = 1 > I missed that one, sorry. > Why you would *ever* want to write the latter is a mystery to me :-) I wouldn't, simply missed the point. > I mean, you could also wrap your whole program with: > > if true && true && 100 > unless false || nil > .... ad infinitum. > > But why would you? Besides, keep in mind that this is only a warning. > You *can* do "if n = 1", if you enjoy using those keys on your > keyboard so much that you can't resist :-) But given that there's no > possibility that you would ever need to (and that in the general case > of if n = x you *don't* get a warning), it seems reasonable to be > warned. > Well, the warning text is somewhat misleading, because the occurence of the equal sign isn't the problem, but the fact that I assign a constant to a value and this is the top level expression of the condition. Because, if (x=1) or (x=2) then 4 else 2 end doesn't give a warning, neither does if x = 1||2 then 4 else 2 end nor if x = 1+2 then 4 else 2 end And I probably meant == in all of these. -- stefan