On Wed, Mar 31, 2004 at 09:08:20AM +0900, Daniel Sheppard wrote: > Just saw this over at http://www.c2.com/cgi/wiki?IwannaLearnRuby and > realised I don't know the answer. > > How are Symbol objects used? > http://www.ruby-doc.org/docs/rdoc/1.9/classes/Symbol.html > Why should I use them to create class attributes? --GirtsKalnins > > > It appears to me that everywhere that you could use a symbol, you could > just as easily use a string. Is there any reason other than aesthetics > that you shouldn't just use Strings everywhere? Are Symbols just a > hangover from an older Ruby version. One reason: Speed. Symbols are like Atoms in other languages -- they are invariant, and a symbol only creates a new object if it's the first time it's used. They're singletons per-value: :foo.id == :foo.id == true "foo".id == "foo".id == false They're hooked right into Ruby's internal symbol table. They're also marginally easier to type. > > Daniel Sheppard > http://jroller.net/page/soxbox > ##################################################################################### > This email has been scanned by MailMarshal, an email content filter. > ##################################################################################### >