2009-12-24 26 views
0

我是新來的Ruby所以請原諒我,如果這是明顯的東西..在Ruby中模擬枚舉的最佳方式? (第二部分)

我做了一個類,像這樣

class Element 
    attr_accessor :type 
    :type_integer 
    :type_string 
end 

(這真的只是一個例子,不實際的代碼)

嗯,我讀了Enums in Ruby,我寧願去像其他語言枚舉類似的路線。但是,我有一個問題,在執行此操作時如何保持全局範圍清晰。我想要能夠做的是類似於

e=Element.new 
e.type=Element.type_integer 

或類似的東西非常簡單和直接。

+0

爲什麼要關閉這個問題? – Earlz 2009-12-24 21:30:03

回答

2

符號不會對全局(或任何其他)範圍做任何事情(即當您使用符號時沒有變量或常量或其他任何東西被定義),所以我想答案是:只要使用符號和全局範圍將保持清晰。

如果你想使用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