当我说时{ :bla => 1, :bloop => 2 },该:怎么办?我在某处读到了它与字符串的相似之处,但在某种程度上却是一个符号。我对这个概念不太清楚,有人可以启发我吗?
                    
                    
                3 回答
                            一只甜甜圈
                            
                                
                            
                        
                        
                                                
                    TA贡献1836条经验 获得超5个赞
:foo是一个名为“ foo”的符号。符号具有明显的特征,即任何两个相同的符号将是相同的:
"foo".equal? "foo" # false
:foo.equal? :foo # true
这使得比较两个符号的速度非常快(因为只涉及指针比较,而不是像字符串中那样比较所有字符),而且您不会在同一符号周围成千上万个副本。
另外,与字符串不同,符号是不可变的。
                            天涯尽头无女友
                            
                                
                            
                        
                        
                                                
                    TA贡献1831条经验 获得超9个赞
在ruby中,每个对象都有一个唯一的对象标识符,如果您puts "hello".object_id在irb中写入并按两次return键,则将获得2个不同的返回值,但是如果您写入:hello.object_id2次,则将仅获得相同的一个返回值。那应该解释了差异。
- 3 回答
 - 0 关注
 - 938 浏览
 
添加回答
举报
0/150
	提交
		取消
	