是否有可能創建快捷方式來實例化Ruby中的自定義類?Ruby:類實例化的快捷方式
例如,對於散列的如下一個子類:
class MyHash < Hash
# some custom methods
end
MyHash實例可以像創建:
foo = MyHash[ :bar => 'baz' ]
或
foo = MyHash.new
foo[:bar] = 'baz'
即足夠細,但我想知道是否有方法來定義新的快捷方式,如:
foo = my{ :bar => 'baz' }
更新:
爲目標似乎不清楚,我這裏主要考慮的是瞭解如何紅寶石內部建立一個快捷方式之間的聯繫,像{}
和Hash.new
,如果有可能創造新的快捷方式。
我沒有看到您想要的快捷方式的好處。 – Zach
我同意,但我只是想知道這是可能的。 – Eric
Ruby語法的一部分可以被覆蓋(例如,':+'和':=='),而部分則不能。我認爲'{}'屬於第二類。但是請參閱Rubinius的Ruby實現,以便將更多的運行時暴露給可能的修改。 –