Ruby中的冒号运算符是什么?

当我说时{ :bla => 1, :bloop => 2 },该:怎么办?我在某处读到了它与字符串的相似之处,但在某种程度上却是一个符号。

我对这个概念不太清楚,有人可以启发我吗?


达令说
浏览 812回答 3
3回答

一只甜甜圈

:foo是一个名为“ foo”的符号。符号具有明显的特征,即任何两个相同的符号将是相同的:"foo".equal? "foo"  # false:foo.equal? :foo    # true这使得比较两个符号的速度非常快(因为只涉及指针比较,而不是像字符串中那样比较所有字符),而且您不会在同一符号周围成千上万个副本。另外,与字符串不同,符号是不可变的。

天涯尽头无女友

在ruby中,每个对象都有一个唯一的对象标识符,如果您puts "hello".object_id在irb中写入并按两次return键,则将获得2个不同的返回值,但是如果您写入:hello.object_id2次,则将仅获得相同的一个返回值。那应该解释了差异。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Ruby