一个Ruby idiom

Ruby没有C/C++/C#风格的enum。没有关系,上meta-programming,这是熟练Ruby程序员的第一反应,因为Ruby也没有struct,用meta-programming造出的struct一样好使。很好很强大的想法。但是如果我们想Keep It Simple呢?一个小小的parallel assignment功能就解决问题:

module WeekDay
  Mon, Tue, Wed, Thu, Fri, Sat, Sun = *(1..7)
end
p WeekDay::Mon
p WeekDay::Tue
...

最后还想提醒一下,这个enum和C# enum一样是具备反射性的,只要WeekDay.constants就行了。

你可能感兴趣的:(Ruby)