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

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

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