为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

达令说 2019-10-15 10:50:37
当我说时{ :bla => 1, :bloop => 2 },该:怎么办?我在某处读到了它与字符串的相似之处,但在某种程度上却是一个符号。我对这个概念不太清楚,有人可以启发我吗?
查看完整描述

3 回答

?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

:foo是一个名为“ foo”的符号。符号具有明显的特征,即任何两个相同的符号将是相同的:


"foo".equal? "foo"  # false

:foo.equal? :foo    # true

这使得比较两个符号的速度非常快(因为只涉及指针比较,而不是像字符串中那样比较所有字符),而且您不会在同一符号周围成千上万个副本。


另外,与字符串不同,符号是不可变的。


查看完整回答
反对 回复 2019-10-15
?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

在ruby中,每个对象都有一个唯一的对象标识符,如果您puts "hello".object_id在irb中写入并按两次return键,则将获得2个不同的返回值,但是如果您写入:hello.object_id2次,则将仅获得相同的一个返回值。那应该解释了差异。


查看完整回答
反对 回复 2019-10-15
  • 3 回答
  • 0 关注
  • 812 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信