我红宝石1.8.7,为什么我可以在main中使用require,但是不能使用self.require?Ruby需要和self.require
require('date') # ok
self.require('date')
NoMethodError: private method `require' called for main:Object
from (irb):22
from /usr/lib/ruby/1.8/date.rb:437
众所周知,主要是Object类: IRB(主要):045:0>自 =>主
irb(main):043:0> self.class
=> Object
但我发现它有内核的mixin:
irb(main):042:0> self.class.included_modules
=> [Kernel]
此外,我发现要求是自己的私人方法:
irb(main):037:0> self.private_methods
=> [... "require", ...]
同样的方式,我不能用self.attr_accessor:
irb(main):051:0> class X
irb(main):052:1> self.attr_accessor(:ssss)
irb(main):053:1> end
NoMethodError: private method `attr_accessor' called for X:Class
from (irb):52
from /usr/lib/ruby/1.8/date.rb:437
如何它的发生?有人可以澄清这个问题吗?
此外,我不能使用自我。类定义中的attr_accessor: – user1355943 2012-04-25 11:10:36
'self.send(:require,'date')' – fl00r 2012-04-25 12:43:58