2011년 6월 2일 목요일

Array and Hashes

Array and Hashes

배열과 해시는 둘다 키(key)를 이용해서 접근할 수 있는 객체 모음이다. 해시에서는 키 값으로 어떠한 객체를 사용해도 상관 없지만, 배열은 정수만 사용할수 있다. 배열과 해시 모두 새로운 요소를 담기 위해서 공간이 더 필요해지면 필요한 만큼 스스로 확장한다. 일반적으로 배열에 접근하는 것이 더 효율적이다.
a = [ 1, 'cat', 3.14 ]   # array with three elements
# access the first element
a[0]»1
# set the third element
a[2] = nil
# dump out the array
a»[1, "cat", nil]



"[]"사이에 객체들을 나열하는 방식의 배열 리터널을 이용해서 새로운 배열을 생성하고, 초기화 할수 있다.
배열의 Index는 "0"부터 시작한다.

비어있는 배열을 선언할 경우에는 아래와 같이 두가지 방법이 있다.
empty1 = []
empty2 = Array.new

또 문자열의 배열을 만들어야 할때 반복되는 따옴표를 넣는 불편함을 아래와 같이 하면 피할수 있다.
a = %w{ ant bee cat dog elk }
a[0]»"ant"
a[3]»"dog"



루비의 Hash 리터널은 "[]" 대신 "{}"를 사용한다. 단, 해시에서 중괄호 안의 구성요소 하나당 두개의 객체를 포함해야 하는데, 하나는 키이고 다른 하나는 값이다.
instSection = {
 'cello'     => 'string',
 'clarinet'  => 'woodwind',
 'drum'      => 'percussion',
 'oboe'      => 'woodwind',
 'trumpet'   => 'brass',
 'violin'    => 'string'
}

Hash의 Key를 가지고 값을 출력해보면 아래와 같고 등록되지 않은 'bassoon' key의 값은 nil(null)를 리턴한다.
instSection['oboe']»"woodwind"
instSection['cello']»"string"
instSection['bassoon']»nil



비어있는 Hash를 생성하려면 아래와 같이 하면된다.
histogram = Hash.new(0)
histogram['key1']»0
histogram['key1'] = histogram['key1'] + 1
histogram['key1']»1

댓글 없음:

댓글 쓰기

ETL 솔루션 환경

ETL 솔루션 환경 하둡은 대용량 데이터를 값싸고 빠르게 분석할 수 있는 길을 만들어줬다. 통계분석 엔진인 “R”역시 하둡 못지 않게 관심을 받고 있다. 빅데이터 역시 데이터라는 점을 볼때 분산처리와 분석 그 이전에 데이터 품질 등 데이...