我正在学习Ruby,并进入irb使用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
能起作用? - 是什么这是我需要担心的时候写。rb文件?
这是很难谷歌。我使用ruby 2.1.2和irb 0.9.6.
在运行help Date
之后添加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
带有默认构造函数。
我怀疑这对你来说不会有什么问题。