我想在Ruby中創建一個惰性計算哈希值:紅寶石 - 懶洋洋地評估的哈希
hash = {foo: -> {go_find_foo} }
我不希望來電者知道,他們可能會得到一個proc
回,而不是一個值 - 理想情況下,我希望Hash類能夠分別獲取值是否爲proc
,執行它,將Hash中的值設置爲lambda的返回值,最後將值返回給客戶端。
理想情況下,我希望能夠使用標準語法定義這些散列,如上面的代碼示例中所示。這意味着我不能真正使用擴展,因爲我需要手動調用構造函數(hash = LazyHash.new
)。如果我猴子補丁,那麼我不能委託給原來的執行[]
。
任何想法?是否有任何圖書館已經這樣做?有什麼方法可以告訴Ruby在解釋{}
符號時實例化Hash
的哪個實現?
這看起來不錯 –