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
...