2014-10-20 106 views
0

由于短路规则,我不能写这样的事情:评估多个OR条件

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 

第二种方式似乎......“笨重”,所以我觉得我在阅读茱莉亚手册时错过了一些东西。有没有一种标准的方法来写入多个OR条件? (或者比我有更多的写OR条件的方法)。

假设message可以是任何字符串,我只想做一些事情,如果它不是"success""login successful"

回答

4

这似乎是使用or/vs vs否定的错误。我想这是你想要的是

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

*脸掌* *这就是为什么你不写在晚上太晚,女士们,先生们。 – 2014-10-20 22:09:34