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

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

Ruby lamdba 相等性?

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

問(wèn)題描述

HI,以下是小弟的嘗試:

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

為什么是false呢?

Ruby lamdba 相等性?

問(wèn)題解答

回答1:

版本問(wèn)題。

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

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

參考:

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

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

回答2:

看了一下ruby的官方文檔,lambda 實(shí)際就是 Proc, Proc并沒(méi)有重載自己的 ==方法,調(diào)用的是BasicObject的 == 方法

Equality — At the Object level, == returns true only if obj and other are the same object(Objec層次比較對(duì)象的方法是判斷是否是相同的對(duì)象).Typically, this method is overridden in descendant classes to provide class-specific meaning.

Proc

查看Proc的基類就可以看到繼承自O(shè)bject,然后Object繼承自BasicObject

相關(guān)文章:
主站蜘蛛池模板: 久久精品成人免费看 | 欧美色老头oldvideo | 成年免费a级毛片 | 一级一片免费视频播放 | 点击进入不卡毛片免费观看 | 日韩欧美综合在线二区三区 | 免费一级肉体全黄毛片 | 欧美一级视频在线观看欧美 | 精品一区二区三区在线观看 | 欧美日本一道高清二区三区 | 男女午夜24式免费视频 | 欧洲成人在线 | 亚洲欧美在线一区二区 | 精品国产免费人成高清 | 亚洲 欧美 成人日韩 | 久久综合给会久久狠狠狠 | 欧美日韩中文字幕在线视频 | 麻豆日韩 | 国产一区二区在线看 | 中文字幕视频免费在线观看 | 成人欧美一区二区三区视频 | 国产一级做a爰片久久毛片男 | 欧美毛片日韩一级在线 | 欧美日韩专区国产精品 | 国产不卡在线观看视频 | 亚洲另类激情综合偷自拍图 | 久久夜色精品国产 | 92国产福利久久青青草原 | 精品国产自在现线看久久 | 碰碰碰免费公开在线视频 | 欧美激情久久久久久久大片 | 国内精品伊人久久久影视 | cao草棚视频网址成人 | 成人网视频免费播放 | 精品96在线观看影院 | 久久福利青草精品资源站 | 久久免费视频网 | 一区二区三区日韩精品 | 亚洲国产第一区二区三区 | 99久久国产免费中文无字幕 | 亚洲成人黄色网址 |