首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Ruby语言中的NameError

Ruby语言中的NameError
EN

Stack Overflow用户
提问于 2011-06-27 04:13:24
回答 3查看 34.2K关注 0票数 28

对于这段代码:

代码语言:javascript
复制
class myBaseClass
  def funcTest()
    puts "baseClass"
  end
end
myBaseClass.new.funcTest

我收到一个错误:

代码语言:javascript
复制
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时,我得到:

代码语言:javascript
复制
NameError: undefined local variable or method `myBaseClass' for main:Object from (irb):152

有没有人遇到过这个问题?我不认为我的代码会出错。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-06-27 04:17:35

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

票数 63
EN

Stack Overflow用户

发布于 2011-06-27 04:18:18

你的类名应该以大写字母开头,下面是工作代码

代码语言:javascript
复制
class MyBaseClass
  def funcTest()
   puts "baseClass"
 end
end



MyBaseClass.new.funcTest
票数 5
EN

Stack Overflow用户

发布于 2011-06-27 04:21:54

你的代码是错误的。在Ruby中,类名必须以大写字母开头。

代码语言:javascript
复制
class MyBaseClass

把它修好。

我不明白的是你怎么不能像我一样得到一个清晰的错误信息。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6486443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档