2014-10-20 4 views
0

Из-за короткого замыкания правил я не могу написать что-то вроде этого:оценивающих множественные ИЛИ условия

message = "nada" 

if message != "success" || message != "login successful" 
    error("get_response() failed with message returned of: $message") 
end 

Вместо этого я должен был написать что-то вроде этого, чтобы получить его работу:

message = "nada" 

if message != "success" ? message != "login successful" : false 
    error("get_response() failed with message returned of: $message") 
end 

Второй способ кажется ... «неуклюжим», поэтому я чувствую, что что-то пропустил, пройдя руководство по Джулии. Существует ли стандартный способ записи нескольких условий ИЛИ? (или лучший способ написать несколько условий ИЛИ, чем у меня).

Предположим, что message может быть любой строкой, и я только хочу что-то сделать, если это не "success" или "login successful".

ответ

4

Это просто кажется ошибкой в ​​использовании или/или против отрицаний. Я предполагаю, что вы хотели,

message = "nada" 

if !(message == "success" || message == "login successful") 
    error("get_response() failed with message returned of: $message") 
end 

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

message = "nada" 

if message != "success" && message != "login successful" 
    error("get_response() failed with message returned of: $message") 
end 

, которые оба работают для меня. Исходное состояние

message != "success" || message != "login successful" 

всегда верно, так как любой message должен быть неравными по меньшей мере, одной из строк "success" и "login successful".

+0

* лицо ладонь * ... поэтому вы не слишком поздно оповещаете женщин и господа. –

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