-1

ruby-v2.2.3 应该将 Date 类预加载到 irb 中,但是当我输入...

Date NameError: uninitialized constant Date from (irb):1 from /Users/noah/.rubies/ruby-2.2.3/bin/irb:11:in `'

如果它应该被预加载到 2.2.3中,为什么我必须require Date每次都这样做?

4

2 回答 2

3

Date在v2.2.3或当前的Ruby v2.3.1 core-classes中没有列为核心类,但 Time 是。这是一些 IRb 输出:

$ irb -f
irb(main):001:0> Date.class
NameError: uninitialized constant Date
Did you mean?  Data
  from (irb):1
  from /Users/ttm/.rbenv/versions/2.3.1/bin/irb:11:in `<main>'
irb(main):002:0> Time.class
=> Class
irb(main):003:0> Time.methods(false)
=> [:at, :now, :utc, :gm, :local, :mktime]

不过,这是 Time 方法的一个有限子集:

irb(main):002:0> require 'time'
=> true
irb(main):003:0> Time.methods(false)
=> [:at, :now, :utc, :gm, :local, :mktime, :parse, :zone_offset, :strptime, :rfc2822, :rfc822, :httpdate, :xmlschema, :iso8601]
于 2016-08-25T17:15:36.890 回答
0

为什么说Date是预装?它不是核心类,它是标准库的一部分,因此需要它。Time而是一个核心类。

于 2016-08-25T15:55:26.390 回答