[루비 사용자 가이드] 배열(Array)

루비/레일스 프로그래밍/루비 사용자 가이드 2007.04.28 09:35

배열(array)은 원소를 각괄호([])안에 콤마로 구분해 나열해서 생성할 수 있습니다. 루비의 배열은 다양한 타입의 객체를 포함할 수 있습니다(역주:C/C++, Java등에서 배열은 동일한 타입의 객체의 모임입니다).

ruby> ary = [1, 2, "3"]
   [1, 2, "3"]

배열은 스트링과 마찬가지로 서로 합쳐지거나 반복될 수 있습니다.

ruby> ary + ["foo", "bar"]
   [1, 2, "3", "foo", "bar"]
ruby> ary * 2
   [1, 2, "3", 1, 2, "3"]

배열의 일부분을 참조할 때 수(number) 인덱스를 사용합니다. 0이 배열의 맨 첫 원소입니다.

ruby> ary[0]
   1
ruby> ary[0,2]
   [1, 2]
ruby> ary[0..1]
   [1, 2]
ruby> ary[-2]
   2
ruby> ary[-2,2]
   [2, "3"]
ruby> ary[-2..-1]
   [2, "3"]

(음수 인덱스는 배열의 끝에서부터 인덱싱을 합니다. -1이면 배열의 맨 끝 원소입니다.)

배열을 스트링으로 만들 수도 있고, 스트링에서 배열을 얻어낼 수 도 있습니다. 각각 joinsplit을 사용합니다:

ruby> str = ary.join(":")
   "1:2:3"
ruby> str.split(":")
   ["1", "2", "3"]

해시(Hashes)

연관 배열(associative array)은 원소를 수 인덱스가 아닌 키(keys) 값으로 억세스할 수 있는 배열입니다. 키는 임의의 값이 될 수 있습니다. 이런 배열을 해시(hash)사전(dictionary)이라 부릅니다; 루비 세계에서는 해시라는 말을 더 선호합니다. 해시는 키와 값 쌍을 큰괄호({}) 안에 나열해서 만들 수 있습니다. 수를 이용해 배열에서 원소를 가져올 수 있었던 것처럼, 키를 사용해 해시에 저장된 값을 찾아낼 수 있습니다.

ruby> h = {1 => 2, "2" => "4"}
   {1=>2, "2"=>"4"}
ruby> h[1]
   2
ruby> h["2"]
   "4"
ruby> h[5]
   nil
ruby> h[5] = 10    # 원소 추가
   10
ruby> h
   {5=>10, 1=>2, "2"=>"4"}
ruby> h.delete 1   # 키를 기준으로 원소 삭제
   2
ruby> h[1]
   nil
ruby> h
   {5=>10, "2"=>"4"}

Trackbacks 0 : Comments 0

Write a comment