我正在学习Ruby,并使用Date类来测试一些东西。简而言之,我做了以下事情:
$ irb
irb(main):001:0> Date.new
=> #<Date:0x007f983103ee60>
irb(main):002:0> Date.constants
=> []
irb(main):003:0> help Date
=> nil
irb(main):004:0> Date.constants
=> [:MONTHNAMES, :ABBR_MONTHNAMES, :DAYNAMES, :ABBR_DAYNAMES, :ITALY, :ENGLAND, :JULIAN, :GREGORIAN, :Infinity]
irb(main):005:0>
我对此很困惑。问题:
Date.constants
的输出发生变化?help
正在加载/初始化某些内容。它是什么?为什么Date.new
有效?谷歌很难做到这一点。我在ruby 2.1.2和irb 0.9.6。
答案 0 :(得分:0)
运行Date
后添加help Date
常量的最可能原因是,在执行命令的某个地方require 'date'
(或require 'time'
)被调用:
2.1.0 :001 > Date.constants
=> []
2.1.0 :002 > require 'date'
=> true
2.1.0 :003 > Date.constants
=> [:MONTHNAMES, :ABBR_MONTHNAMES, :DAYNAMES, :ABBR_DAYNAMES, :ITALY, :ENGLAND, :JULIAN, :GREGORIAN, :Infinity]
对于Date.new
,它有效,因为Date
附带了默认构造函数。
我怀疑这对你来说会有问题。