자본 엄.슴.
Ruby 심볼 본문
심볼
심볼은 그냥 문자열이라고 생각하면 편하다. 단지 문자열처럼 이거저거 붙이거나 제거하는 식으로 건드릴 수 없을 뿐이다. 즉 변경이 불가능한 문자열이다. 그런데 왜 굳이 변경 불가능한 심볼이 필요할까 싶다. 그것은 문자열이 메모리에서 효율이 썩 좋지 않기 때문이다. 변경 가능한 객체인 문자열은 같은 값을 가지고 있더라도 계속 문자열을 생성한다. 그래서 문자열이 서로 다른 메모리 공간을 차지하게 된다. 이러면 문자열을 많이 사용하면 할 수록 메모리 공간을 많이 차지하게 되는데 이럴 때 심볼이 유용하다. 심볼은 문자열 앞에 :을 붙여서 만들 수 있다.
puts "hello".object_id == "hello".object_id
puts :hello.object_id == :hello.object_id
결과
false
true
문자열은 같은 값을 가져도 object_id를 각각 가지고 있지만 심볼은 그렇지 않다. 심볼의 이런 특징 때문에 같은 문자열을 반복해서 사용할 때 유용하다.
해시
해시는 키(key)와 값(value)를 가지고 있는 데이터 타입이다. 해시의 키를 호출하면 그 키에 해당하는 값을 얻을 수 있다. Hash.new를 이용해서 만들 수 있다.
noye = Hash.new
noye["name"] = "NoYE"
noye["age"] = 19
그냥 중괄호를 이용해서 선언할 수도 있다.
noye = {"name"=>"NoYE", "age"=>19}
루비에서 심볼을 해시의 키로 사용할 수 있다.
noye = {:name=>"NoYE", :age=>19}
심볼을 사용할 때는 :name=> 형태 대신 name: 형태를 사용할 수도 있다.
noye = {name:"NoYE", age:19}
'Ruby' 카테고리의 다른 글
| Ruby 배열 (0) | 2019.02.12 |
|---|---|
| Ruby 문자열 (0) | 2019.02.06 |
| Ruby 객체(2) (0) | 2019.02.02 |
| Ruby 모듈 (0) | 2019.01.31 |
| Ruby 싱글톤 메서드 (0) | 2019.01.30 |
Comments