Quick question:
I know that the 'and' and 'or' operators in ruby have the same
precedence, and '&&' has a higher one than '||' - but is there a best
practise for which one to use when precedence isn't important?
Thanks,
~ Mark
···
--
Posted via http://www.ruby-forum.com/.
I think "best practice" in this case is to use whatever makes it most
readable. I tend to like "and" and "or" (except when I don't). Notable
exceptions include operators like ||= and &&=, which don't use "and" and
"or".
···
On Sat, Mar 29, 2008 at 08:22:00AM +0900, Mark Dodwell wrote:
Quick question:
I know that the 'and' and 'or' operators in ruby have the same
precedence, and '&&' has a higher one than '||' - but is there a best
practise for which one to use when precedence isn't important?
--
CCD CopyWrite Chad Perrin [ http://ccd.apotheon.org ]
Ben Franklin: "As we enjoy great Advantages from the Inventions of others
we should be glad of an Opportunity to serve others by any Invention of
ours, and this we should do freely and generously."
I usually use && and || because they visually stand out better than "and" and "or" and can be used with assignments (higher precedence than "="). I use "and" and "or" rather seldom mostly when chaining commands as in
foo = doit() and puts foo
YMMV
Kind regards
robert
···
On 29.03.2008 00:22, Mark Dodwell wrote:
I know that the 'and' and 'or' operators in ruby have the same
precedence, and '&&' has a higher one than '||' - but is there a best
practise for which one to use when precedence isn't important?
Keeping in mind that using && instead of and here has quite a
different result, even after adjusting the syntax of the puts call:
irb(main):001:0> a = 1 and puts "foo"
foo
=> nil
irb(main):002:0> a
=> 1
irb(main):003:0> a = 1 && puts "foo"
SyntaxError: compile error
(irb):3: syntax error, unexpected tSTRING_BEG, expecting kDO or '{' or '('
a = 1 && puts "foo"
^
from (irb):3
irb(main):004:0> a = 1 && puts("foo")
foo
=> nil
irb(main):005:0> a
=> nil
I don't know that I've ever used 'and' since being bitten by the
relative precedence of = and 'and' in a rails app I inherited and was
extending.
I also don't believe that I'd personally use
a = 1 and puts "foo"
rather than splitting it into two lines, perhaps replacing the and
with a semi-colon or otherwise steppng back and micro-refactoring the
code to make it clearer.
But I could be wrong.
···
On 3/29/08, Robert Klemme <shortcutter@googlemail.com> wrote:
I use "and" and "or" rather seldom mostly when chaining commands
as in
foo = doit() and puts foo
--
Rick DeNatale
My blog on Ruby
http://talklikeaduck.denhaven2.com/
I use "and" and "or" rather seldom mostly when chaining commands
as in
foo = doit() and puts foo
Keeping in mind that using && instead of and here has quite a
different result, even after adjusting the syntax of the puts call:
Which is the precise reason why I would use "and" in this case. Note that I wrote "seldom" so this is not a too frequent idiom I employ.
rather than splitting it into two lines, perhaps replacing the and
with a semi-colon or otherwise steppng back and micro-refactoring the
code to make it clearer.
But I could be wrong.
I don't think so. This is also a question of personal style and I don't find anything wrong with your approach.
Kind regards
robert
···
On 30.03.2008 14:16, Rick DeNatale wrote:
On 3/29/08, Robert Klemme <shortcutter@googlemail.com> wrote: