반응형

* 이 게시글은 인사이트에서 출판한 "Programming Ruby"를 참고하여 작성되었습니다.


  해시(Hash)는 연관 배열, 사전(dictionary)라고도 불립니다.


배열과 비슷하지만 배열은 index를 이용하여 객체를 참조하지만,


해시는 어떠한 객체라도 index로 사용이 가능합니다.


예를 들어서 배열은 아래와 같이 사용합니다.


array[0] #=> 1

array[1] #=> 2

array[2] #=> 3

#[ 1, 2, 3]


여기서 index로 사용된 0, 1, 2 의 경우는 배열에 순서에 따라서 자동으로 매겨지죠.



그리고 해시의 경우 아래와 같이 사용 할 수 있습니다.


hash['dog'] #=> "animal"

hash['laptop'] #=> "electronic"

hash['cat'] #=> "animal"

#{ "dog"=>"animal", "laptop"=>"electronic", "cat"=>"animal" }


위에 예에서는  key, value 모두 String으로 사용하였습니다.


array에서 0, 1, 2를 index라고 부르고, hash에서는 key 라고 부릅니다.


dog, laptop, cat은 문자열로 되어있는 key인거죠.



Hash 사용방법


Hash를 생성하는 방법은 배열과 같이 2가지가 있습니다.


#리터럴를 이용하는 방법

h = { 'dog' => 'animal', 'cat' => 'animal', 'laptop' => 'electronic' }


#명시적으로 Hash 클래스의 인스턴스를 만드는 방법

h = Hash.new(0)


Array와 마찬가지로 key, value 의 객체는 어떠한 객체라도 넣을 수 있습니다.


h = { 'dog' => 'animal', 'cat' => 'animal', 'laptop' => 'electronic' }


h[123] = 123


h #=> { "dog"=>"animal", "cat"=>"animal", "laptop"=>"electronic", 123 => 123}


Symbol


Ruby에서 Hash를 사용할때 Symbol을 key값으로 사용하면 매우 유용합니다.


Symbol에 대해서는 나중에 따로 게시글을 작성하겠습니다.


h = { dog: "animal", cat: "animal", laptop: "electronic" }


h[:dog] #=> "aniamal"


h[:cat] #=> "animal"

*여기서 사용되는 :dog 는 Symbol입니다. 위에 다른 예제에서 사용된 String과는 다릅니다.



반응형

+ Recent posts