在Ruby中实现枚举用法的最佳方法是什么?我正在寻找可以(几乎)使用的东西,例如Java / C#枚举。
3 回答
慕容森
TA贡献1853条经验 获得超18个赞
两种方式。符号(:foo符号)或常量(FOO符号)。
当您想提高可读性而不用文字字符串乱码时,使用符号是合适的。
postal_code[:minnesota] = "MN"
postal_code[:new_york] = "NY"
当您具有重要的基础值时,常数是适当的。只需声明一个模块来保存您的常量,然后在其中声明常量。
module Foo
BAR = 1
BAZ = 2
BIZ = 4
end
flags = Foo::BAR | Foo::BAZ # flags = 3
梵蒂冈之花
TA贡献1900条经验 获得超5个赞
最惯用的方法是使用符号。例如,代替:
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
:baz
my_func(:foo)
它比枚举更开放,但与Ruby精神非常契合。
符号的表现也很好。例如,比较两个符号是否相等,比比较两个字符串要快得多。
- 3 回答
- 0 关注
- 921 浏览
添加回答
举报
0/150
提交
取消