很早就知道 ruby 有 4 种相等性判断方法,分别是:“==”,“===”,“equal"codetitle">复制代码 代码如下:
def ==(comparison_object)
super ||
comparison_object.instance_of"codetitle">复制代码 代码如下:
def what_is(obj)
case obj
when /abc/
puts "include abc"
when 3..5
puts "in 3..5"
when Symbol
puts "It is a symbol"
else
puts "unkonwn"
end
end
what_is("abcde") # => "include abc"
what_is(4) # => "in 3..5"
what_is(:a) # => "It is a symbol"
what_is(100) # => "unknown"
case 背后是拿每一个 when 后面的对象与 obj 进行 === 方法计算比较,比如上面的代码就是 分别求 /abc/.===(obj) , (3..5).===(obj) , Symbol.===(obj) 。
关键得看 === 方法里如何定义, Class 类中, === 定义为 obj.is_a"abcd" 为 true,但 "abcd" === /abc/ 为 false。
“equal"codetitle">复制代码 代码如下:
1 == 1.0 #=> true
1.eql? 1.0 #=> false
Ruby,相等性判断
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。