2014-10-20 88 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