Ruby中的NameError是怎么回事?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (15)

对于这段代码:

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

提问于
用户回答回答于

在ruby中,所有常量(包括类名)都必须以大写字母开头。myBaseClass将被解释为未定义的局部变量。MyBaseClass会正常工作。

用户回答回答于

类名应以下面的大写开头:

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



MyBaseClass.new.funcTest

扫码关注云+社区