From: "Jesús Gabriel y Galán" Date: 2010-07-08T01:04:20+09:00 Subject: Re: Symbols vs. variable On Wed, Jul 7, 2010 at 5:51 PM, Abder-rahman Ali wrote: > What is the main difference between using a symbol (begins with :), and > a variable? They are two completely different concepts: - A symbol is an object. It's literal representation is a set of characters that start with :, but it's a full object with methods, etc. It has some properties that make them different to other objects, the most relevant one being that all instances of the literal refer to the same object: irb(main):003:0> :test.object_id => 87218 irb(main):004:0> :test.object_id => 87218 Compare this to, for example, Strings or Arrays: irb(main):005:0> "test".object_id => -610207318 irb(main):006:0> "test".object_id => -610213628 irb(main):007:0> [].object_id => -610222448 irb(main):008:0> [].object_id => -610232888 - A variable is a reference to an object. When you say a = you are creating a local variable that refers to . That object could be any object, for example a Symbol: a = :test > When should we use one over another? I don't think this question has any sense, as they are completely different concepts. Jesus.