gpt4 book ai didi

ruby - 为什么 MyObject.new.class === MyObject 的计算结果为 false?

转载 作者:数据小太阳 更新时间:2023-10-29 08:14:59 26 4
gpt4 key购买 nike

我执行以下操作,结果为 false:

MyObject.new.class === MyObject

但是,

MyObject.new.class == MyObject

评估为 true。有更多 Ruby 背景的人可以向我解释一下吗?是否可以为此目的使用 ==

最佳答案

在 Ruby 中,=== 不是 == 的严格版本,而在其他一些语言中是这样。

===方法有几个含义:

成员(member)资格:

(1..10) === 5       # => true

测试参数是否是接收者的实例:

p MyObject.new.class === MyObject.new  # true; it's the same as 
p MyObject.new.is_a? MyObject

正则表达式匹配:

/\w+/ === "Ruby"

案例陈述:

year = 2011

case year
when 1901..2000
puts 'Second millennium'
when 2001..2999
puts 'Third millennium'
end

其他含义见ri ===

MyObject.new.class == MyObject只是一个普通的相等性测试(MyObject是一个类对象,MyObject.new.class是同一个类对象)

关于ruby - 为什么 MyObject.new.class === MyObject 的计算结果为 false?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8539721/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com