irb返回NameError:未初始化的常量Date

时间:2016-08-25 15:52:03

标签: ruby date irb nameerror uninitialized-constant

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

  

日期   NameError:未初始化的常量日期          来自(irb):1          来自/Users/noah/.rubies/ruby-2.2.3/bin/irb:11:in`'

如果应该预先加载到2.2.3中,为什么每次都要require Date

2 个答案:

答案 0 :(得分:1)

日期未列为core class in v2.2.3或当前Ruby v2.3.1 core-classes,但时间为。这里有一些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's方法的一个有限子集:

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]

答案 1 :(得分:0)

为什么说预载Date?它不是核心类,它是stdlib的一部分,因此需要它。 Time是一个核心类。