小编典典

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

all

当我说{ :bla => 1, :bloop => 2 }时,它到底是:做什么的?我在某处读到它与字符串的相似之处,但不知何故是一个符号。

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


阅读 23

收藏
2022-05-13

共1个答案

小编典典

:foo是一个名为“foo”的符号。符号有一个显着的特点,即任何两个同名的符号都是相同的:

"foo".equal? "foo"  # false
:foo.equal? :foo    # true

这使得比较两个符号非常快(因为只涉及指针比较,而不是像在字符串中比较所有字符),而且您不会有无数个相同符号的副本浮动。

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

2022-05-13