所以我有這樣的代碼:紅寶石,價值鏟裝,美化代碼
def self.age_to_bucket(age)
age = age.to_i
if age >= 0 && age <= 12
1
elsif age >= 13 && age <= 17
2
elsif age >= 18 && age <= 24
3
elsif age >= 25 && age <= 29
4
elsif age >= 30 && age <= 34
5
elsif age >= 35 && age <= 39
6
elsif age >= 40 && age <= 49
7
elsif age >= 50 && age <= 64
8
elsif age >= 65
9
else
0
end
end
如何提高不失其可讀性這個代碼?
我知道我可以使用#in?
與範圍,就像這樣:
if age.in? (0..12)
但#in?
是的ActiveSupport,我寧願用更獨立的方式。
你喜歡這個還是太抽象了? `[0,12,13,17,...]。find_interval(15)#=> 2`。實現起來相當簡單(有效地做起來有點困難)。 – tokland 2011-12-16 08:59:51
我的意思是:`[0,13,18,...]。find_interval(15)` – tokland 2011-12-16 09:05:53
我寧願不自己實現任何東西,因爲我只需要在一個地方使用此代碼。 – 2011-12-16 09:08:29