을 반환하는 기능을 구현하는, 내가 Array
을 위해 존재하는 것 같이, 현재의 객체를 변경하는 버전을 즉 map
, map!
의 부딪 혔어요 버전을 생성하고 싶습니다.루비 : 개인 <code>Hash</code> 구현을위한 열거
h.map
=> #<Enumerator: {1=>2, 12=>21, 6=>3}:map>
내가 무엇을 추가해야합니다 : 블록없이 호출
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
를 반환 블록이 주어지면, 구현은 아래 제대로 작동하는 것 같다 블록이 주어지지 않을 때 열거자를 반환하도록 내 함수에?
를 사용하여 놀라 울 정도로 간단합니다 그들 자신. OP는 블록이 단순히 각 키에 새로운 값을 반환하기를 원합니다. – Max