구 원트노/루비 기초
[루비 기초]5장 해쉬와 심볼Hash(해쉬)
해쉬는 배열의 일종으로 배열의 인덱스로 문자열이나 심볼 등 임의 객체로 사용할 수 있습니다.이를 키(key)라고 불립니다.
Hash 생성
1 2 3 4 5 6 7 | #해시 생성자 표기법 my_hash=Hash.new my_hash["jake"] = 10 my_hash["jane"] = 20 #해시 리터럴 표시법 my_hash={"jake"=> 10, "jane" => 20} | cs |
해시 생성 방법으로는 크게 두가지 방법이 있습니다.
'해시 생성자 표기법'으로는 "해시이름[key] = value" 이 방식으로 기술합니다.
'해시 리터럴 표시법'은 {key => value}를 사용해서 기술합니다.
Hash 요소 출력
1 2 3 4 | my_hash={"jake"=> 10, "jane" => 20} puts my_hash["jake"] # 10 puts my_hash["jane"] # 20 | cs |
해쉬 안에 데이터를 꺼내오려면
우리가 만든 키로 접근할 수 있습니다.
Hash 요소 변경, 추가, 삭제
1 2 3 4 5 | my_hash={"jake"=> 10, "jane" => 20} my_hash["joo"] = 30 # {"jake"=> 10, "jane" => 20,"joo" => 30 } my_hash["jane"] = 30 # {"jake"=> 10, "jane" => 30,"joo" => 30 } my_hash.delete("joo") # {"jake"=> 10, "jane" => 30 } | cs |
요소 추가와 변경은 앞에 사용한 '해쉬 생성자 표기법'을 사용합니다.
특정 키에 해당하는 값을 삭제하려면 delete메서드를 사용하면 됩니다.
심볼
':ruby' 처럼 앞에 콜론(:)을 붙인 문자열을 심볼이라고 불립니다.심볼의 특징으로는 한 번 생성한 뒤에는 변경이 불가능하다는 부분과주어진 기간에 하나의 복사본을 사용하고, 문자열보다 빠르다는 점을 가집니다.
심볼 문법
1 2 | my_first_symbol = :likemonkey #o my_first_symbol = :like monkey #x | cs |
심볼은 콜론(:)으로 시작됩니다.
그 다음은 문자이거나 _이어야 합니다.
그리고 심볼 이름 안에는 빈 공간이 존재하면 안됩니다.
심볼과 문자열 사이의 변환
1 2 | :lion.to_s # ==> "lion" "lion".to_sym # ==> :lion | cs |
to_s메소드는 다른 객체를 메서드로 변환해줍니다.
to_sym은 문자열을 심볼로 변환해줍니다.
해쉬 + 심볼 예제
1 2 3 4 5 6 7 8 9 | movies ={ :primer => "Awesome", :memento => "NOt as good" } movies ={ primer: "Awesome", memento: "NOt as good" } | cs |
두 개의 해쉬는 같은 의미입니다.
만약 키가 심볼이라면 ':primer =>'를 'primer:'로 줄일 수 있습니다.
궁금하신 점 있으시면 댓글 남겨주세요!!
'구 원트노 > 루비 기초' 카테고리의 다른 글
[루비 기초]4장 배열 (0) | 2017.01.25 |
---|---|
[루비 기초]3장 기초 반복문 (0) | 2017.01.24 |
[루비 기초]2장 연산자와 제어문 (2) | 2017.01.23 |
[루비 기초]1장 변수,주석,숫자와 문자열,입력 출력 (0) | 2017.01.10 |