这是一种switch
声明的默认值:优化红宝石检测声明
def test(st)
[[2, 'info'],
[3, 'warning'],
[4, 'danger'],
[5, 'success']].detect(Proc.new{[nil, 'default']}){|el| el[0]==st}[1]
end
如何使这种说法更加紧凑?
我不喜欢的几件事情:
- 的子阵列从检测,而不是返回它返回的是
- 默认值被定义为
[nil, 'default']
,而不是简单的'default'
- 默认的第二个元素值必须包装成
Proc.new
如何使用'test'? – sawa 2014-09-04 07:56:33
任何不使用'case'语句的理由? – Stefan 2014-09-04 08:02:05
@Stefan:更多代码 – Paul 2014-09-04 08:21:12