2012-05-07 429 views
1

我已經在Ruby中寫了一個類,稱之爲。現在我想創建它的一些實例。但是,我想使用存儲在變量中的值作爲實例的名稱。我可以使用指定名稱創建類的實例嗎?

例如,可變的值是「ABC」。現在我想將新實例「ABC」的名稱作爲語句ABC = Foo.new

我可以認識到這一點嗎?如果可能的話,請告訴我如何。謝謝!!!

回答

2

在Ruby中,你也應該不害怕使用eval(),只要你給它只能通過數據你,程序員構建,沒有不安全的外部影響。在這種情況下,Eval在很多語言中聲譽不佳,但在Ruby中,它非常舒適,基本上和靜態代碼一樣快。

+0

非常感謝你。它確實有很大的幫助。 – fabregaszy

+0

我知道它的確如此。 #eval是一把錘子,你學習特別是那些之前較弱,因此更安全的方式,例如在這種情況下self.class.const_set(:ABC,self.class.const_get(:富)。新):))) –

1

您也可以使用const_set如果你真的與常數工作:

constant = 'ABC' 
Object.const_set constant.to_sym, Foo.new 
相關問題