を美化だから私はこのコードを持っている:ルビー、値のバケットは、コード
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
私は '{0、13、18、...]。find_interval(15)' – tokland
私は自分で何も実装していません。 –