gpt4 book ai didi

ruby-on-rails - Ruby 表达式求值 : whitespace matters?

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

假设现在是 1 月 19 日。如果您今天看这个问题,这并不难。

Date.today
=> Thu, 19 Jan 2012 # as expected

Date.today + 1
=> Fri, 20 Jan 2012 # as expected

Date.today+1
=> Fri, 20 Jan 2012 # as expected

Date.today +1
=> Thu, 19 Jan 2012 # ?!

我在这里错过了什么?

最佳答案

区别在于:

Date.today + 1 

是两个数值相加

Date.today +1 

是对方法 today 的调用,参数 sg(日历改革日)值为 +1

检查这一点的最佳方法是猴子修补包含调试输出的原始方法。以这个脚本为例:

require 'date'

class Date

def self.today(sg=ITALY)
puts "ITALY default("+sg.to_s+")" if sg==ITALY
puts sg unless sg==ITALY
jd = civil_to_jd(*(Time.now.to_a[3..5].reverse << sg))
new0(jd_to_ajd(jd, 0, 0), 0, sg)
end

end

puts "- Addition:"
Date.today + 1
puts "- Parameter:"
Date.today +1

这将打印以下控制台输出:

- Addition:
ITALY default(2299161)
- Parameter:
1

关于ruby-on-rails - Ruby 表达式求值 : whitespace matters?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8924628/

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