티스토리 뷰

Ruby & Rails

Ruby 처음 배우기 : Hash, Symbol

조묵헌 2018. 5. 10. 17:38

해시 (Hash)

해시는 키-값 쌍을 가지는 콜렉션으로, 배열과는 다르게 항목간의 순서는 없으며, 유일한 키에 대응하는 하나의 값을 가지도록 되어있는 데이터타입 입니다.

해시는 대괄호 내부에 표현하며, 키-값 쌍은 아래와 같이 표현합니다. 키에 해당하는 값을 조회하기 위해서는 hash_name[key_name] 과 같은 형식을 사용합니다.

# hash
my_hash = {
  "name" => "Dinah",
  "age" => 3
}

puts my_hash["name"]        #=> "Dinah"

Hash는 Hash.new 메서드를 이용해서 생성할 수도 있습니다. new 메서드를 사용할 경우 파라미터를 이용해 키에 해당하는 값이 비어있을 경우, 키의 기본값을 설정할 수 도 있습니다.

# Hash.new
cats = Hash.new()        #=> {}

cats["name"] = "Dinah"
cats["age"] = 3

cats  #=> {"name"=>"Dinah", "age"=>3}

# 키/값쌍 삭제하기
cats.delete("age")

심볼 (Symbols)

심볼은 변하지 않는 (immutable) 객체의 일종으로, 한번 생성되고 나면 변경할 수 없는 특징을 가집니다. 심볼은 : 기호를 이용해 생성하며, 단 하나의 카피만이 존재합니다. 즉, 컨텍스트 내에서 유일하다는 특성을 가지게 됩니다.

# symbol 표기법
:my_symbol

이러한 특성들로 인해 심볼은 해시 내에서 해시의 키값으로 주로 사용됩니다.

해시에서 키-값 쌍은 "key" => "value" 의 형식으로 사용했으나, ruby 1.9 이후 버전부터는 symbol을 이요한 축약 문법을 사용할 수 있습니다.

# Hash에서의 symbol 사용
# Hash Rocket
numbers_hash = {
  :one => 1,
  :two => 2,
  :three => 3,
}

# 새로운 Hash 문법
numbers_hash = {
  one: 1,
  two: 2,
  three: 3
}

심볼의 형변환

Symbol을 String으로, String을 Symbol로 변경할 수 있습니다.

# symbol을 string으로 변환하기
:humpty.to_s  #=> "humpty"

# string을 symbol로 변환하기
"humpty".to_sym  #=> :humpty
"humpty".intern  #==> :humpty

'Ruby & Rails' 카테고리의 다른 글

Ruby 처음 배우기 : 반복문  (1) 2018.05.10
Ruby 처음 배우기 : 조건문  (0) 2018.05.10
Ruby 처음 배우기 : 배열  (0) 2018.05.10
Ruby 처음 배우기 : 연산자  (0) 2018.05.09
Ruby 처음 배우기 : 데이터타입  (1) 2018.05.09
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함