這是一種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