Ruby의 'Hash'는 만능도구 입니다
(akshaykhot.com)- Ruby의 Hash는 키에 값을 매핑하는 내장 데이터 구조. O(1)
- 다른 언어들은 키/밸류를 관리하는 클래스가 많지만, 루비는 Hash 클래스 하나로 키/밸류 쌍을 관리
- 매우 유연한 자료구조로, 데이터 객체 / 딕셔너리 / 해시테이블 / 정렬 리스트 등 외에도 다양하게 사용 가능
- 심볼/문자열/정수를 포함한 거의 모든 객체를 키로 사용 가능
- fetch 메소드로 키가 없는 경우 기본값 설정 가능
- delete 로 키 삭제 가능. 없는 키를 호출해도 문제 없음
- Nesting 가능
- 해당 키가 없다면 nil 을 리턴하지만, default 속성으로 기본값 지정 가능
- Enumerable 모듈을 포함하여 each, each_key, each_pair, each_value, keys, values 등의 메소드로 해시를 이터레이션 가능
- 더블 Splat 연산자 "**" 로 해시안의 내용을 언팩 가능
- 그외 유용한 메소드들 : any?(key), compact, empty?, merge, hash.eql? obj, except(*keys), reject, filter & select, fetch_values(*keys), has_key?, member?, include?, key?, has_value?, value?, length, size, count, slice(*keys), transform_values, flatten
의외로 10대 개발자도 늘고 있어서, 긱뉴스를 접하는 학생 개발자분들이 점차 늘어나는 것 같습니다.
저도 불과 9달전만 해도 10대였으니까요...