Вы уверены, что не получается?Ваш первоначальный пример хорошо работает для меня.
ruby-1.9.2-p290 :002 > array = ['bar']
=> ["bar"]
ruby-1.9.2-p290 :003 > array.include? 'foo' or array.include? 'bar'
=> true
На самом деле, если что-то можно считать идиоматическим, то это будет тот.Низкий приоритет or
позволяет это сработать, когда вы оставляете парены.Эта характеристика должна сделать ее идиоматичной для Ruby (и даже для Perl, который or
является удержанием).
Вариант 1 очень ясен, но, учитывая, что вы включили парены, вам действительно не нужныиспользовать or
.Вероятно, лучше использовать ||, который имеет более высокий приоритет, чем другие операторы, и встречается чаще.Я думаю, что использование or
для того, чтобы он выглядел как английский, не очень хорошая практика.Он имеет семантическое значение в языке и, вероятно, лучше всего используется для этих качеств.
Вариант 2, конечно, глуп.Если вы собираетесь включить парены, вы также можете использовать их для подписи метода.
Надеюсь, это поможет.