當(dāng)我說時(shí){ :bla => 1, :bloop => 2 },該:怎么辦?我在某處讀到了它與字符串的相似之處,但在某種程度上卻是一個(gè)符號(hào)。我對(duì)這個(gè)概念不太清楚,有人可以啟發(fā)我嗎?
3 回答

一只甜甜圈
TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超5個(gè)贊
:foo是一個(gè)名為“ foo”的符號(hào)。符號(hào)具有明顯的特征,即任何兩個(gè)相同的符號(hào)將是相同的:
"foo".equal? "foo" # false
:foo.equal? :foo # true
這使得比較兩個(gè)符號(hào)的速度非??欤ㄒ?yàn)橹簧婕爸羔槺容^,而不是像字符串中那樣比較所有字符),而且您不會(huì)在同一符號(hào)周圍成千上萬個(gè)副本。
另外,與字符串不同,符號(hào)是不可變的。

天涯盡頭無女友
TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超9個(gè)贊
在ruby中,每個(gè)對(duì)象都有一個(gè)唯一的對(duì)象標(biāo)識(shí)符,如果您puts "hello".object_id
在irb中寫入并按兩次return鍵,則將獲得2個(gè)不同的返回值,但是如果您寫入:hello.object_id
2次,則將僅獲得相同的一個(gè)返回值。那應(yīng)該解釋了差異。
- 3 回答
- 0 關(guān)注
- 912 瀏覽
添加回答
舉報(bào)
0/150
提交
取消