From: Abder-rahman Ali on 7 Jul 2010 11:51 What is the main difference between using a symbol (begins with :), and a variable? When should we use one over another? Thanks. -- Posted via http://www.ruby-forum.com/.
From: Jesús Gabriel y Galán on 7 Jul 2010 12:04 On Wed, Jul 7, 2010 at 5:51 PM, Abder-rahman Ali <abder.rahman.ali(a)gmail.com> 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 = <some object> you are creating a local variable that refers to <some object>. 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.
From: Abder-rahman Ali on 7 Jul 2010 15:19 Thanks a lot. -- Posted via http://www.ruby-forum.com/.
From: Jeremy Heiler on 7 Jul 2010 22:33 2010/7/7 Jesús Gabriel y Galán <jgabrielygalan(a)gmail.com> > On Wed, Jul 7, 2010 at 5:51 PM, Abder-rahman Ali > <abder.rahman.ali(a)gmail.com> wrote: > > > When should we use one over another? > > I don't think this question has any sense, as they are completely > different concepts. > A better question would be: Why use a symbol? Although, a quick Google search will give some good answers.
|
Pages: 1 Prev: What is meant by those lines of code in this script? Next: Mail issue |