對於個人Hash
執行,我想創建的map
,map!
,即一個拍着版本,改變當前對象,就像存在Array
的一個版本。當一個塊已定,那麼執行下面似乎正常工作:紅寶石:實現函數返回一個枚舉
class MyHash < Hash
def map! &block
self.map { |ek, ev| self[ek] = block[ev] } if block_given?
# how to return the Enumerator if block not given?
end
end
當不使用塊調用,hash.map
返回Enumerator
,就像下面的例子:
h.map
=> #<Enumerator: {1=>2, 12=>21, 6=>3}:map>
我要補充到我的函數,使其返回枚舉器時,塊沒有給出?
這依賴於執行任務的方法調用者他們自己。我認爲OP希望塊爲每個鍵返回一個新值。 – Max