如何在Ruby中实现枚举?

在Ruby中实现枚举用法的最佳方法是什么?我正在寻找可以(几乎)使用的东西,例如Java / C#枚举。



撒科打诨
浏览 867回答 3
3回答

慕容森

两种方式。符号(:foo符号)或常量(FOO符号)。当您想提高可读性而不用文字字符串乱码时,使用符号是合适的。postal_code[:minnesota] = "MN"postal_code[:new_york] = "NY"当您具有重要的基础值时,常数是适当的。只需声明一个模块来保存您的常量,然后在其中声明常量。module Foo  BAR = 1  BAZ = 2  BIZ = 4endflags = Foo::BAR | Foo::BAZ # flags = 3

梵蒂冈之花

最惯用的方法是使用符号。例如,代替:enum {  FOO,  BAR,  BAZ}myFunc(FOO);...您可以只使用符号:# You don't actually need to declare these, of course--this is# just to show you what symbols look like.:foo:bar:bazmy_func(:foo)它比枚举更开放,但与Ruby精神非常契合。符号的表现也很好。例如,比较两个符号是否相等,比比较两个字符串要快得多。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Ruby