当我说{ :bla => 1, :bloop => 2 }时,它到底是:做什么的?我在某处读到它与字符串的相似之处,但不知何故是一个符号。
{ :bla => 1, :bloop => 2 }
:
我对这个概念不是很清楚,有人可以启发我吗?
:foo是一个名为“foo”的符号。符号有一个显着的特点,即任何两个同名的符号都是相同的:
:foo
"foo".equal? "foo" # false :foo.equal? :foo # true
这使得比较两个符号非常快(因为只涉及指针比较,而不是像在字符串中比较所有字符),而且您不会有无数个相同符号的副本浮动。
此外,与字符串不同,符号是不可变的。