这两个Ruby符号之间有什么区别?

前端之家收集整理的这篇文章主要介绍了这两个Ruby符号之间有什么区别?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在玩对象ids后发现了这一点.
ObjectSpace._id2ref(2648)
=> :**
ObjectSpace._id2ref(6688)
=> :**
ObjectSpace._id2ref(2648) == ObjectSpace._id2ref(6688)
=> false

第一个是求幂运算符的符号;

2.send(ObjectSpace._id2ref(2648),3)
=> 8
2.send(ObjectSpace._id2ref(6688),3)
NoMethodError: undefined method `**' for 2:Fixnum

但第二个不是吗?我假设他们在传递给#print后看起来一样.但有什么区别?他们中有一个是unicode符号?

更新:第二个可能是关键字参数的新双重splat,但我似乎无法验证这一点.

解决方法

这些命令可能正在照亮:
ObjectSpace._id2ref(2648).class.ancestors
ObjectSpace._id2ref(6688).class.ancestors

猜你在找的Ruby相关文章