Ruby中的NameError

时间:2011-06-26 20:13:24

标签: ruby class

对于这段代码:

class myBaseClass
  def funcTest()
    puts "baseClass"
  end
end
myBaseClass.new.funcTest

我收到错误:

NameError: undefined local variable or method `myBaseClass' for main:Object
from c:/Users/Yurt/Documents/ruby/polymorphismTest.rb:9
from (irb):145:in `eval'
from (irb):145
from c:/Ruby192/bin/irb:12:in `<main>'
irb(main):152:0> x=myBaseClass.new

当我尝试x=myBaseClass.new时,我得到:

NameError: undefined local variable or method `myBaseClass' for main:Object from (irb):152

有人已经遇到过这个问题吗?我不认为我的代码可能是错误的。

3 个答案:

答案 0 :(得分:46)

在ruby中,包括类名在内的所有常量必须以大写字母开头。 myBaseClass将被解释为未定义的局部变量。 MyBaseClass可以正常使用。

答案 1 :(得分:4)

您的班级名称应以大写,工作代码

开头
class MyBaseClass
  def funcTest()
   puts "baseClass"
 end
end



MyBaseClass.new.funcTest

答案 2 :(得分:2)

你的代码错了。类名必须以Ruby中的大写字母开头。

class MyBaseClass

修复它。

我没有得到的是你没有得到像我这样的明确错误信息。