분류 전체보기100 해시와 친해지기3 이미 알다시피, 해시에는 키-값 쌍의 데이터를 저장할 수 있는데, 실생활에서 해시와 비슷한 방식을 떠올려 보면 사물함(락커)을 생각해 볼 수 있다. 사물함은 학교, 수영장, 지하철 등 여러 곳에서 볼 수 있는데, 사물함마다 고유 번호와 함께 그 사물함을 열수 있는 키가 있다.키는 금속 재질로 만들어진 일반적인 키와 RFID 태그를 이용한 키 그리고 번호 키 등 종류가 다양하다. 그리고 일반적으로 사물함 키에는 사물함 번호가 붙어 있는데 키에 붙어 있는 번호의 사물함이 아닌 다른 사물함을 그 키로 열 수는 없다. 사물함이 몇 개 없다면 사물함을 어떤 식으로 배치해 놓더라도 내 키에 해당하는 사물함을 쉽게 찾을 수 있지만, 사물함의 수가 많은 곳에서는 사물함의 배치를 아무렇게나 하면 사용자가 본인의 사물함을.. 2024. 11. 29. 해시와 친해지기2 지난 글에 이어서 해시에서 제공하는 유용한 메서드들을 더 알아보자. 해시에 원하는 키가 있는지 key? 메서드로 확인할 수 있는데, key? 메서드는 Hash 클래스에서 직접 정의한 메서드이고 Enumerable 모듈에서 정의한 메서드인 include?나 member? 메서드를 사용해도 된다. 물론 include?와 member? 메서드 역시 Hash 클래스에서 재정의를 하긴 했지만, 해시에서뿐만 아니라 배열에서도 사용할 수 있기 때문에 코드에서 통일성을 유지하고 싶다면 괜찮은 선택이다.키 검사처럼 해시에 특정 값이 포함되어 있는지를 확인하고 싶으면 value? 메서드를 사용하면 된다. 앞의 그림에서 Hash 클래스가 정의한 인스턴스 메서드들 중에서 메서드 이름이 ?으로 끝나는 메서드(Predicate .. 2024. 11. 25. 해시와 친해지기1 이번 글에서는 데이터를 저장하기 위해 배열과 함께 기본적으로 많이 사용하는 해시에 대해 조금은 더 깊이 알아보려고 한다. 해시는 키-값 쌍으로 데이터를 저장하고 싶을 때 사용하는데, 어떠한 객체라도 해시에 값으로 넣을 수 있고, 루비에서 기본으로 제공하는 객체 대부분을 키로 사용할 수 있다. 아래 그림을 보면 nil을 키로 사용할 수도 있고, 심지어 해시도 다른 해시의 키로 사용할 수 있다.그러나, 해시의 키로는 값이 변하지 않는 객체를 사용하는 것이 좋다. 그래서 가능하면 심볼을 해시의 키로 많이 사용하는데, 리터럴 형식의 정수나 문자열도 키로 사용하기에 나쁘지 않다. 아래 그림을 보면 키로 사용한 해시 h에 값을 넣어 해시 h가 변경이 되면, 그 해시 h를 키로해서 해시 h2에서 다시 값을 찾을 수 .. 2024. 11. 22. Comparable 모듈 사용해서 객체 정렬하기2 지난 글에서는 다룬 내용 중 몇 가지 중요한 핵심 사항들을 다시 떠올려 보자. Comparable 모듈을 사용하기 위해서는 Comparable 모듈을 인클루드하는 클래스에서 연산자의 정의가 필요하다. Kernel 모듈에서는 두 객체가 동일한 객체(object_id 값이 같다)이거나 == 연산자를 호출한 결괏값이 true 면 0을 아니면 nil을 반환하도록 연산자를 정의해 놓았다. BasicObject 클래스에서는 두 객체가 동일한 객체일 경우 true를 아니면 false를 돌려주는 equal? 메서드를 정의해 놓았고 == 연산자도 equal? 메서드와 같은 동작을 하도록 해 놓았다. 우리가 만드는 클래스를 포함해서 BasicObject의 하위 클래스에서는 클래스의 특성에 맞게 == 연산자를 재정의하여.. 2024. 11. 19. 이전 1 ··· 5 6 7 8 9 10 11 ··· 25 다음