string은 데이터, symbol은 식별자
irb(main):001:0> :asdf.object_id == :asdf.object_id
=> true
irb(main):002:0> "asdf".object_id == "asdf".object_id
=> false
symbol의 특징
- 주로 메서드나 인스턴스 변수명을 표현할때 사용됨
- hasy key로 사용되기도 함
- immutable함 - 값 변경 불가, 덮어쓰기 가능, heap메모리에 생성되고나면 동일한 객체로 재사용 가능
- 반면 string은 mutable하므로 실제로는 동일한 값이라 해도 실행시점까지 알수가 없고, 메모리공간도 각각 차지함
- 그러므로 string보다 메모리 효율성/성능 측면에서 유리하다
'Web development > Ruby' 카테고리의 다른 글
[Ruby] 함수를 동적으로 실행하기 (0) | 2019.06.18 |
---|---|
[Ruby] 인스턴스 변수 (0) | 2019.06.18 |
[Ruby] 생성자(Constructor) (0) | 2019.06.18 |
[Ruby] self란? (0) | 2019.06.18 |
call by value vs call by reference (0) | 2019.01.14 |
댓글