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

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

Ruby lamdba 相等性?

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

相關文章:
主站蜘蛛池模板: 国产91亚洲精品 | 国产凹凸在线观看一区二区 | 亚洲一区二区观看 | 欧美一级久久久久久久大 | 爱婷婷网站在线观看 | 亚洲一区 中文字幕 久久 | 最近中文字幕免费完整 | 特黄免费 | 高清影院在线欧美人色 | 精品国产一区二区在线观看 | 大学生一级毛片高清版 | 一级片黑人 | 久99久精品视频免费观看v | 精品三级 | 国产在线精品一区免费香蕉 | 亚洲日本va在线观看 | 国产精品视频人人做人人爱 | 中出欧美 | 久久视频精品53在线观看 | 国产高颜值露脸在线观看 | 青青青久在线视频免费观看 | 我要看黄色一级大片 | 日韩欧美亚洲综合久久99e | 亚洲欧美在线免费 | 亚洲天天做日日做天天看2018 | 老司机狠狠k免费毛片 | 色婷婷六月桃花综合影院 | 日韩在线免费播放 | 日韩视频一 | 欧美日韩一区二区三区视视频 | 亚洲欧美精品综合中文字幕 | 国产手机在线观看视频 | 狠狠色丁香婷婷综合最新地址 | 日韩精品中文字幕一区三区 | 成年偏黄网站站免费 | 黄色一级美女 | 国产亚洲综合视频 | 成人欧美午夜视频毛片 | 国产一级特黄一级毛片 | 亚洲综合色就色手机在线观看 | 久久99精品国产99久久6男男 |