我在玩对象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