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
每次都这样做?
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
每次都这样做?
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]
为什么说Date
是预装?它不是核心类,它是标准库的一部分,因此需要它。Time
而是一个核心类。