문제
루비에서 해시 해시를 생성하면 편리한 두 (또는 그 이상의) 치수 조회가 가능합니다. 그러나 삽입 할 때 첫 번째 인덱스가 해시에 이미 존재하는지 항상 확인해야합니다. 예를 들어:
h = Hash.new
h['x'] = Hash.new if not h.key?('x')
h['x']['y'] = value_to_insert
새 해시가 자동으로 생성되는 다음을 수행하는 것이 바람직합니다.
h = Hash.new
h['x']['y'] = value_to_insert
마찬가지로, 첫 번째 색인이 아직 존재하지 않는 값을 찾을 때 '[]'오류에 대한 정의되지 않은 메소드를받지 않고 NIL을 반환하는 경우 바람직합니다.
looked_up_value = h['w']['z']
이 동작을 가진 해시 래퍼 클래스를 만들 수 있지만이 작업을 수행하기위한 기존 루비 관용구가 있습니까?
다른 팁
자가 변형은 부름을받는 축복이자 저주입니다. 문제는 값이 정의되기 전에 값을 "보"하면 슬롯 에이 빈 해시에 붙어 있으며 나중에 차단해야한다는 것입니다.
약간의 무정부 상태가 마음에 들지 않으면 언제든지 쿼리대로 예상 구조를 구성 할 수있는 스타일 선언을 항상 잼 할 수 있습니다.
((h ||= { })['w'] ||= { })['z']
제휴하지 않습니다 StackOverflow