Today I learned about symbols in ruby.
- Ruby strings are mutable unlike python strings (and C strings literals) They are allocated in the heap and can be changed over time.
"Hello" = 'h', exactly like
[1,2,3] = 0in python, is legitimate in ruby because strings are mutable, However
:Hello = "h"is not.
- Symbols are some sort of immutable strings, they are more efficient than strings because they are stored in the stack and they don’t change references.
- Symbols are used as key in hashes, in general when we value identiy over data. because they prevent reallocatng string every time.