这两个红宝石符号有什么区别



我在玩弄对象ID后发现了这个。

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 符号吗?

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

这些命令可能很有启发性:

ObjectSpace._id2ref(2648).class.ancestors
ObjectSpace._id2ref(6688).class.ancestors

相关内容

  • 没有找到相关文章

最新更新