gpt4 book ai didi

ruby - Ruby 大小写相等运算符失败 ===

转载 作者:数据小太阳 更新时间:2023-10-29 07:55:00 24 4
gpt4 key购买 nike

我有:

require 'date'

pap1 = Date.parse('1968-06-12')
pap2 = Date.parse('1968-12-31')
dat = Date.parse('1968-06-12')
dat2 = dat + 5 # => #<Date: 1968-06-17 ((2440025j,0s,0n),+0s,2299161j)>

在下面的例子中,我想测试一个日期是否在一个日期范围内。我希望日期范围 pap1..pap2 涵盖 datdat2case 相等运算符应将 dat 计为在 pap1pap2 范围内:

case dat
when (pap1..pap2)
puts 'in range'
else
puts 'not in range'
end
# >> not in range

(pap1..pap2).cover?(dat) # => true
(pap1..pap2).include?(dat) # => true
(pap1..pap2) === dat # => false
puts 'works' if (pap1..pap2) === dat # => nil

(pap1..pap2).cover?(dat2) # => true
(pap1..pap2).include?(dat2) # => true
(pap1..pap2) === dat2 # => false
puts 'works' if (pap1..pap2) === dat2 # => nil

但事实并非如此。我错过了什么吗?

最佳答案

这显然是 Ruby 2.3.0 中的一个已知错误,已在 2.3.1 中的某个时间点修复。这是错误报告 Bug Report on === with Dates .答:升级。

关于ruby - Ruby 大小写相等运算符失败 ===,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43867618/

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