亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

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

Ruby lamdba 相等性?

瀏覽:118日期: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)文章:
主站蜘蛛池模板: 日韩一区二区天海翼 | 久久精品视频9 | 欧美毛片a级毛片免费观 | 草草视频在线免费观看 | 最新亚洲情黄在线网站无广告 | 免费国产成人高清视频网站 | 台湾久久| 欧美一级片免费观看 | 中文字幕欧美在线观看 | 三级国产在线观看 | 杨幂国产精品福利在线观看 | 成人午夜做爰视频免费看 | 一级毛片免费不卡在线 | 日本韩经典三级在线播放 | 亚洲欧美日韩成人一区在线 | 亚洲综合一区二区三区 | 交视频在线观看国产网站 | 成人午夜视频在线观 | 91亚洲精品在看在线观看高清 | 亚洲天堂二区 | 国产亚洲一区二区三区 | 印度最猛性ⅹxxxxx | 毛片免费观看久久欧美 | 岛国在线永久免费视频 | 无限资源中文免费 | 日韩在线欧美在线 | 深夜福利视频大全在线观看 | 一级美女片 | 中文字幕免费 | 日本久久综合网 | 成人国产永久福利看片 | 萌白酱喷水福利视频在线 | 免费黄色网址在线播放 | 日本黄页免费 | 精品综合久久久久久99 | 女人张开腿让男人桶视频 | 18视频免费网站 | 玖草在线视频 | 久久精品国产精品亚洲艾 | 久久丁香| 美女国产在线观看免费观看 |