Разница между или и || при установке переменных - PullRequest
6 голосов
/ 26 октября 2009

У меня сложилось впечатление, что || и or являются синонимами.

Установка переменной с помощью or не содержит значения; Зачем?

>> test = nil or true
=> true
>> test
=> nil

>> test = false or true
=> true
>> test
=> false

Работает «как положено» с ||

>> test = nil || true
=> true
>> test
=> true

Ответы [ 2 ]

15 голосов
/ 26 октября 2009

or имеет более низкий приоритет , чем =.

test = nil or true

совпадает с

(test = nil) or true

, что составляет true, при установке test на nil.

|| имеет более высокий приоритет, чем =.

test = nil || true

совпадает с

test = (nil || true)

, что составляет true, при установке test на true.

1 голос
/ 27 октября 2009

То же самое между and и &&. Однажды меня укусил этот гоча, но я понимаю, что хотя and более читабельно, чем &&, это не значит, что оно всегда более подходящее.

>> f = true && false
=> false
>> f
=> false
>> f = true and false
=> false
>> f
=> true
>> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...