2011-08-01 87 views
1

我有三個變量所有這些都可以是零:Ruby中無效的開關情況?

to 
cc 
bcc 

我如何分配X到的任何一個/ CC/BCC因爲他們中的任何一個都可以是零(但不是全部三個) ?這似乎醜做

if to.nil? and cc.nil? 
    X = bcc 
elsif ... 

你不能這樣做

X = to or cc or bcc 

無論是。

+0

你意識到'X'是一個常數,而不是一個變量? 'x'將是一個變量。 –

回答

12

喲可以這樣做:

X = (to or cc or bcc) 

或者這樣:

X = to || cc || bcc 

||的優先級高於=or - 低,所以第一個例子中不帶括號的工作,X就是無條件地分配給第一個變量。

0

我做

x = [to, cc, bcc].find{|address| ! address.nil?} 
+0

你可以做'x = [to,cc,bcc] .find {| address |地址}'。 :) –