理解Symbol

上一篇 / 下一篇  2008-02-02 15:11:29 / 个人分类:Ruby

一个 Symbol objects 和 一个 name(variables,classes都可以命名,这个被命名的名字,就是name)或者一个 string 产生一种对应关系,它表述名字表面上的意义,而不是名字的内在含义,Symbol objects使得我们只关心名字,而不关心其他的内容,下面是ruby library里面对Symbol objects做解释时候使用的一个例子:

 

   module One
     class Fred
     end
     $f1 = :Fred
   end
   module Two
     Fred = 1
     $f2 = :Fred
   end
   def Fred()
   end
   $f3 = :Fred
   $f1.id   #=> 2514190
   $f2.id   #=> 2514190
   $f3.id   #=> 2514190

 

我们可以看见,$f1,$f2,$f3 这3个对象有同样的一个id,说明什么?说明这3个对象是一个对象,也就是说,它们都是保存这一个Symbol object,就是 :Fred

 

我们可以用print打印一下

 

irb(main):001:0> :Fred            #加name,打印name
=> :Fred
irb(main):002:0> :"hi"             #加字符串,打印字符串
=> :hi


TAG: Ruby

 

评分:0

我来说两句

我的栏目

日历

« 2024-05-05  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 22866
  • 日志数: 47
  • 建立时间: 2008-01-29
  • 更新时间: 2008-02-02

RSS订阅

Open Toolbar