2013-10-02 3 views
-1

Может кто-нибудь, пожалуйста, объясните мне различия этих двух следующих строк кода?Булевое выражение в Ruby - разность betwen или и ||

puts false or true or false or false or false 

Я не понимаю, почему результат выполнения этой строки предположим, будет отличаться от:

puts false || true || false || false || false 

Я был бы признателен, если кто-то может объяснить, что со мной.

+0

Сколько ответов вы хотите? Перейдите сюда http://stackoverflow.com/search?q=%5Bruby%5D+%22%7C%7C%22+%22or%22 –

ответ

2
p false or true #=> false => same as (p false) or true 
p false || true #=> true => same as p (false or true) 
0

Ruby унаследовал часть своего потока управления от Perl. Таким образом, в Ruby and и or предназначены для управления потоком, а && и || являются булевыми операторами. Это также означает, что and и or имеют более высокий приоритет, чем && и ||

Ex:

and используется как:

(true) and puts `true` 

что эквивалентно

if true then 
    puts "true" 
end 

и && должны используя:

true && false 

который является false.

Смежные вопросы