我有从 A 类派生的 B 类,例如:
class A
..
end
class B < A
...
end
在另一个文件中,我定义了一个变量 M
M = B
然后我得到了错误
"NameError: uninitialized constant B".
我只是发现如果我写
M=A
M=B
然后就可以了。看来我必须以某种方式初始化 A 。
我有从 A 类派生的 B 类,例如:
class A
..
end
class B < A
...
end
在另一个文件中,我定义了一个变量 M
M = B
然后我得到了错误
"NameError: uninitialized constant B".
我只是发现如果我写
M=A
M=B
然后就可以了。看来我必须以某种方式初始化 A 。
由于这些文件与 rails 没有关系,我们假设它们是系统上任何文件夹中的两个单独文件。假设它们在同一个目录中。
class_def.rb:
class A
def self.talk
puts 'hello'
end
end
class B < A
def self.talk
super()
puts 'world'
end
end
亚军.rb:
require './class_def.rb'
M=B
M.talk
调用 ruby runner.rb 应该产生输出
hello
world
但是我注意到使用 RubyFiddle 的相同错误
w/调用方法http://rubyfiddle.com/riddles/1d8e2
w/oa 调用方法http://rubyfiddle.com/riddles/1d8e2/