Почему в Ruby есть операторы && и 'и'? - PullRequest
1 голос
/ 20 января 2012

Я понимаю разницу между ними , но я не могу понять, почему они оба включены в язык.Неужели наличие обоих просто вызывает путаницу?

Ответы [ 4 ]

5 голосов
/ 20 января 2012

Их приоритет отличается, поэтому они не эквивалентны.

Мое эмпирическое правило таково: используйте && для логических выражений и and для потока управления.

Примеры

# logical expressions
if user.first_name == 'Bob' && user.last_name == 'Jones'

# control flow
worker.do_this and worker.and_also_do_this_if_that_went_well
2 голосов
/ 20 января 2012
  • Perl имеет те же дублеты, даже с той же разницей приоритетов, что и в Ruby.
  • На Ruby сильно повлиял Perl.

Я считаю, что смотреть нев дальнейшем.

1 голос
/ 20 января 2012
0 голосов
/ 20 января 2012

Это лучшее объяснение, которое я видел:

http://avdi.org/devblog/2010/08/02/using-and-and-or-in-ruby/

...