扫码关注官方订阅号
HI,以下是小弟的尝试:
p=lambda {|x| x*x} q=p.dup puts q==p #out false puts p.object_id puts q.object_id
为什么是false呢?
小伙看你根骨奇佳,潜力无限,来学PHP伐。
看了一下ruby的官方文档,lambda 实际就是 Proc, Proc并没有重载自己的 ==方法,调用的是BasicObject的 == 方法
Equality — At the Object level, == returns true only if obj and other are the same object(Objec层次比较对象的方法是判断是否是相同的对象).Typically, this method is overridden in descendant classes to provide class-specific meaning.
Proc
查看Proc的基类就可以看到继承自Object,然后Object继承自BasicObject
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
看了一下ruby的官方文档,lambda 实际就是 Proc,
Proc并没有重载自己的 ==方法,调用的是BasicObject
的 == 方法
Proc
查看Proc的基类就可以看到继承自Object,然后Object继承自BasicObject