2011-05-17 60 views
1

當試圖將NaN插入數據庫時​​,我試圖跳過計算某些數字。我的代碼如下:如果三個條件爲假,則執行代碼

unless @X = 0 || @Y = 0 || Z= 0 #Don't execute below code if any of the three values = 0 
    #Do some stuff with @X, @Y and @Z 
end 

我知道,X,Y和Z爲正整數,因爲他們應該的,但這種說法是不除非子句中觸發代碼塊。我公然濫用||嗎?運營商?

+1

'='是一個賦值運算符,你想要的是一個相等運算符:'==' – sled 2011-05-17 16:58:17

+0

derp。這樣做,謝謝你迴應這樣一個愚蠢的問題。乾杯 – Chazu 2011-05-17 17:01:23

回答

4

您正在使用=賦值運算符。您希望使用==等號運算符。您的代碼應該是這樣的:

unless @X == 0 || @Y == 0 || @Z == 0 
... 
end 
+0

工作,謝謝你指出我的錯誤。 – Chazu 2011-05-17 17:02:56

+1

很高興提供幫助。如果它適合你,請接受答案。 (點擊複選標記) – andrewmitchell 2011-05-17 17:10:46

2

您應該使用雙等於(==)在ifunless子句中進行比較,而不是等於(=)。

+0

Zomg * facepalm * – Chazu 2011-05-17 17:00:30

0

尤其是當你想與零比較,有一個內置在紅寶石命令,它比做== 0更快。

unless @x.zero? or @y.zero? or @z.zero? 
    ... 
end 

您可以使用||or這裏。