如何根据第三个变量值将2个变量设置为1或0

Bla*_*man 1 ruby

我有一个具有以下值的变量:

blah = # 1, 0, or -1
Run Code Online (Sandbox Code Playgroud)

现在我想设置这两个变量:

up

down
Run Code Online (Sandbox Code Playgroud)

基于'blah'的值为1或0.

如果blah为1,则up = 1且down = 0,如果blah为-1,则down = 1且up = 0

如果blah为0,则两者都为0.

你怎么能用红宝石的方式做这么多的检查呢?

saw*_*awa 9

解决方案1

up, down =
case blah
when 1; [1, 0]
when 0; [0, 0]
when -1; [0, 1]
end
Run Code Online (Sandbox Code Playgroud)

解决方案2(灵感来自mu太短)

up, down = [[0, 0], [1, 0], [0, 1]][blah]
Run Code Online (Sandbox Code Playgroud)