There are some important difference between the two.  While the object  
referred to by a constant will (in most cases) remain the same once  
its set, the object itself might change significantly.  For example:

AN_ARRAY = []

will point to that particular array, but if you add an object to that  
array there can be consequences.  For example, if you use it as a key  
to a hash (which i don't recommend.).

hash = {}
hash [AN_ARRAY] = true
hash << "string"
hash[AN_ARRAY] => nil

A symbol is immutable and therefore will always refer to the same  
element of a hash.



On Dec 21, 2009, at 8:07 PM, Gennady Bystritsky wrote:

> Constants are variables that can be assigned to any object (only  
> once). While symbols are immutable instances of class Symbol. Those  
> are 2 totally different concepts.
>
> Gennady.
>
> On Dec 21, 2009, at 4:57 PM, Sonja Elen Kisa wrote:
>
>> How are symbols and constant (capitalized) strings similar or
>> dissimilar? They both seem to be used to store text that is not  
>> intended
>> to change. In what situations should I use one or the other? How  
>> should
>> I separate them in my brain?
>> -- 
>> Posted via http://www.ruby-forum.com/.
>>
>
>