2 回答

TA貢獻(xiàn)1869條經(jīng)驗(yàn) 獲得超4個(gè)贊
Ruby 是一個(gè)強(qiáng)大的面向?qū)ο竽_本語(yǔ)言(本文所用 Ruby 版本為1.8.6),在 Ruby 中 Symbol 表示“名字”,比如字符串的名字,標(biāo)識(shí)符的名字。
創(chuàng)建一個(gè) Symbol 對(duì)象的方法是在名字或者字符串前面加上冒號(hào):
創(chuàng)建 symbol 對(duì)象
:foo
:test
:”abc”
:”I am a boy”
你可能會(huì)問(wèn),字符串就是字符串,干嗎還有字符串的名字?這是因?yàn)樵?Ruby 中字符串也是一種對(duì)象,即 String對(duì)象。無(wú)論其結(jié)構(gòu)還是操作和 Symbol 對(duì)象都是不同的。
在 Ruby 中每一個(gè)對(duì)象都有唯一的對(duì)象標(biāo)識(shí)符(Object Identifier),可以通過(guò) object_id 方法來(lái)得到一個(gè)對(duì)象的標(biāo)識(shí)符。我們來(lái)看看 Symbol 對(duì)象和 String 對(duì)象的差別:
Ruby 對(duì)象標(biāo)識(shí)符
irb(main):001:0> puts :foo.object_id
327458
=> nil
irb(main):002:0> puts :foo.object_id
327458
=> nil
irb(main):003:0> puts :"foo".object_id
327458
=> nil
irb(main):004:0> puts "foo".object_id
24303850
=> nil
irb(main):005:0> puts "foo".object_id
24300010
=> nil
irb(main):006:0> puts "foo".object_id
24296170
=> nil
- 2 回答
- 0 關(guān)注
- 665 瀏覽
添加回答
舉報(bào)