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

您的位置:首頁技術(shù)文章
文章詳情頁

Ruby lamdba 相等性?

瀏覽:103日期: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:

版本問題。

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

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

參考:

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

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

回答2:

看了一下ruby的官方文檔,lambda 實(shí)際就是 Proc, Proc并沒有重載自己的 ==方法,調(diào)用的是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的基類就可以看到繼承自O(shè)bject,然后Object繼承自BasicObject

相關(guān)文章:
主站蜘蛛池模板: 看国产一级片 | 欧美一区二区三区不卡视频 | 亚洲国产高清视频 | 日本特级爽毛片叫声 | 中文字幕国产日韩 | 97久久天天综合色天天综合色 | 国产婷婷一区二区三区 | 国产精品麻豆综合在线 | 国产成人a一在线观看 | 在线日韩一区 | 99久久精品免费国产一区二区三区 | 97影院午夜午夜伦不卡 | 一区二区在线观看视频 | 黄色短视频免费观看 | 天天亚洲综合 | 国产精品福利在线播放 | 免费看黄色片视频 | 窝窝午夜看片成人精品 | 欧美一级特黄aa大片在线观看免费 | 欧美另类偷自拍视频二区 | 亚洲人和日本人hd | 国产第一区精品视频ai换脸 | 亚洲综合成人网 | 麻豆免费视频网站入口 | 日韩女性性生生活视频 | 欧美爱爱视频网站 | 亚洲色大成网站www久久九九 | 亚洲欧美日产综合在线看 | 免费一级毛片在线播放放视频 | 国亚洲欧美日韩精品 | 色站综合 | va免费视频 | 免费高清毛片 | 国产情侣真实露脸在线最新 | 久久视频在线播放视频99re6 | 黄色短视频免费观看 | 亚洲日本高清成人aⅴ片 | 色偷偷女男人的天堂亚洲网 | 国产综合视频在线观看 | 99热er| 91福利国产在线观看网站 |