Notice
Recent Posts
Recent Comments
Link
«   2026/01   »
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 31
Archives
Today
Total
관리 메뉴

자본 엄.슴.

Ruby 심볼 본문

Ruby

Ruby 심볼

자본없음 2019. 2. 8. 22:53

심볼

심볼은 그냥 문자열이라고 생각하면 편하다. 단지 문자열처럼 이거저거 붙이거나 제거하는 식으로 건드릴 수 없을 뿐이다. 즉 변경이 불가능한 문자열이다. 그런데 왜 굳이 변경 불가능한 심볼이 필요할까 싶다. 그것은 문자열이 메모리에서 효율이 썩 좋지 않기 때문이다. 변경 가능한 객체인 문자열은 같은 값을 가지고 있더라도 계속 문자열을 생성한다. 그래서 문자열이 서로 다른 메모리 공간을 차지하게 된다. 이러면 문자열을 많이 사용하면 할 수록 메모리 공간을 많이 차지하게 되는데 이럴 때 심볼이 유용하다. 심볼은 문자열 앞에 :을 붙여서 만들 수 있다.

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