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

当我说{:bla=>1,:bloop=>2}时,到底做了什么?我在某个地方读到过关于它是如何类似于一个字符串,但不知何故是一个符号

我不太清楚这个概念,有人能给我一些启发吗

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

“foo”。相等吗?“foo”#假
:foo.equal?:真的

这使得比较两个符号的速度非常快(因为只涉及指针比较,而不是像比较字符串中的所有字符那样),而且不会有大量相同符号的副本

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

发表评论