亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

Ruby lamdba 相等性?

瀏覽:82日期:2024-08-10 08:40:28

問題描述

HI,以下是小弟的嘗試:

p=lambda {|x| x*x}q=p.dupputs q==p #out falseputs p.object_idputs q.object_id

為什么是false呢?

Ruby lamdba 相等性?

問題解答

回答1:

版本問題。

你的這本書應該比較老了,用的 Ruby 版本是 2.0 之前的。從 Ruby 2.0 開始,Proc#== 的行為發生了變化:

從 Ruby 2.0 開始,Two procs are == only when they are the same object.只有當兩個 proc 是同一對象時,== 才返回 true。

參考:

https://bugs.ruby-lang.org/issues/4559

https://github.com/ruby/ruby/blob/f031aec4233d7a6d4622c048abed3e86eb5dd6c2/NEWS#L127-130

回答2:

看了一下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

相關文章:
主站蜘蛛池模板: 中文字幕日韩精品中文区 | jdav视频在线观看 | a级毛片高清免费视频 | 久久亚洲国产欧洲精品一 | jizz国产精品免费麻豆 | 看成年全黄大色黄大片 | 在线观看网址 | 日本xxx片免费高清在线 | 国产一级内谢a级高清毛片 国产一级毛片大陆 | 伊人婷婷色香五月综合缴缴情 | 国产精品一区在线免费观看 | 动漫精品专区一区二区三区不卡 | 国产农村精品一级毛片视频 | 欧美精品一区在线看 | 成年男女男免费视频网站不卡 | 久久99国产亚洲精品观看 | 尤物免费在线观看 | 亚洲精品久久婷婷爱久久婷婷 | 色妇女影院 | 免费看在线爱爱小视频 | 国产综合亚洲欧美日韩一区二区 | 亚洲看| 国产一区二区三区四区在线观看 | 黄色成年网站 | 性做爰片免费视频毛片中文ilo | 免费一级a毛片在线播出 | 国产精品福利午夜在线观看 | 国产真实女人一级毛片 | 国产午夜三级 | 中国一级黄 | 九九热视频在线观看 | 成人污片 | 性做久久久久久久久男女 | 亚洲精品播放 | 青青伊人久久 | 国产成人美女福利在线观看 | 午夜影院一级片 | 国产精品人成人免费国产 | 欧美一级视屏 | 看美国毛片 | 日韩精品欧美亚洲高清有无 |