在Ruby中模拟枚举的最佳方式? (第二部分)
问题描述:
我是新来的Ruby所以请原谅我,如果这是明显的东西..在Ruby中模拟枚举的最佳方式? (第二部分)
我做了一个类,像这样
class Element
attr_accessor :type
:type_integer
:type_string
end
(这真的只是一个例子,不实际的代码)
嗯,我读了Enums in Ruby,我宁愿去像其他语言枚举类似的路线。但是,我有一个问题,在执行此操作时如何保持全局范围清晰。我想要能够做的是类似于
e=Element.new
e.type=Element.type_integer
或类似的东西非常简单和直接。
答
符号不会对全局(或任何其他)范围做任何事情(即当您使用符号时没有变量或常量或其他任何东西被定义),所以我想答案是:只要使用符号和全局范围将保持清晰。
如果你想使用e.type=Element.type_integer
,同时仍然使用的符号,你可以这样做:
class Element
def self.type_integer
:type_integer
end
end
虽然我看不到上升空间与只使用e.type = :type_integer
直接。
+0
+1 sepp2k是男人 – horseyguy 2009-12-25 00:20:05
为什么要关闭这个问题? – Earlz 2009-12-24 21:30:03