在Ruby中使用nil的高效开关盒?

Rio*_*Rio 1 ruby ruby-on-rails ruby-on-rails-3

我有三个变量,所有这些变量都可以是nil:

to
cc
bcc
Run Code Online (Sandbox Code Playgroud)

X如果其中任何一个都可以为零(但不是全部三个),我如何分配给/ cc/bcc中的任何一个?看起来很难看

if to.nil? and cc.nil?
   X = bcc
elsif ...
Run Code Online (Sandbox Code Playgroud)

你做不到

 X = to or cc or bcc 
Run Code Online (Sandbox Code Playgroud)

无论是.

Vic*_*gin 12

哟可以做到这一点:

X = (to or cc or bcc)
Run Code Online (Sandbox Code Playgroud)

或这个:

X = to || cc || bcc
Run Code Online (Sandbox Code Playgroud)

||的优先级高于=,or-低,所以第一实施例没有没有括号工作,X是刚刚无条件分配给第一个变量.