maghac
8/14/2007 9:18:00 AM
On Aug 14, 11:11 am, "Robert Dober" <robert.do...@gmail.com> wrote:
> On 8/14/07, maghac <magnus.hac...@gmail.com> wrote:
>
> > Hi,
> > as a long-term perl user just recently converted to ruby, I'm curious
> > about one particular syntax "feature": ruby symbols and how they
> > relate to strings.
>
> > Isn't really :name a shortcut for "name"? (I read somewhere in an
> > explanation of attr_reader that e.g :age was the "name" of the
> > variable age, while age is the actual content of that variable). If
> > so, couldn't you use this in hash keys as well, e.g say hashvar[:key]
> > instead of hashvar['key'].
>
> > Are there situations where you cannot use symbols instead of strings,
> > or the other way around?
>
> > I might be too used to the way strings and barewords are handled in
> > perl (if something looks like a string, and it's not a function call,
> > it's interpreted as a string. This means you can say $hashvar{key}
> > without quoting the key).
>
> This question is asked very frequently, please search the archives for
> more info.
> I will try to give a very quick answer nevertheless:
>
> Symbols are immutable, thus great to represent immutable data, often
> that makes them an excellent choice for hash keys
> { :the_value => 42, :alternatively => 22, :or_even => 101010 }
> they just do not play the role of Strings, coming from Perl you just
> had to use Strings, you did not have a tool for names (wait a moment
> was there not such a thing as references to constants?).
> Very roughly put I see Symbols as name, and Strings as data, whenever
> I can use Symbols I use them, comes natural after some time.
>
> HTH
> Robert
> --
> [...] as simple as possible, but no simpler.
> -- Attributed to Albert Einstein
Thanks, that cleared a few things for me.
I found something in the FAQ about it, but it didn't really answer my
question on the differences/similiarities between symbols and strings.
thanks
Magnus