ruby nameerror的原因:未初始化常量错误

开源编程语言Ruby以其清晰的语法和易用性而闻名。这并不意味着您不会偶尔遇到错误消息。最令人烦恼的是NameError Uninitialized常量异常,因为它有多个原因。异常的语法遵循以下格式:...

开源编程语言Ruby以其清晰的语法和易用性而闻名。这并不意味着您不会偶尔遇到错误消息。最令人烦恼的是NameError Uninitialized常量异常,因为它有多个原因。异常的语法遵循以下格式:

Man with glasses using a laptop NameError: uninitialized constant Something

NameError: uninitialized constant Object::Something

(不同的类名代替某物)

ruby nameerror未初始化常量原因

未初始化常量错误是常规NameError异常类的变体。它有几个可能的原因。

  • 当代码引用它找不到的类或模块时,您会看到这个错误,这通常是因为代码不包含require,require指示Ruby文件加载该类。
  • 在Ruby中,变量/方法以小写字母开头,而类以大写字母开头。如果代码没有反映这种区别,您将收到未初始化的常量异常。
  • NameError错误的另一个可能原因是您在代码中输入了一个简单的错误。
  • Ruby区分大小写,所以“TestCode”和“TestCode”完全不同。
  • 代码中提到了rubygems,除了旧版本的Ruby外,其他所有版本都不推荐使用rubygems。

如何修复错误

要对代码进行故障排除,请逐个检查上面列出的可能原因。如果发现问题,请解决它。例如,检查代码,查找变量和类的大小写用法是否存在差异。如果你找到一个并改正它,你的问题可能就解决了。如果不是,请继续查找其他可能的原因,并在执行过程中进行修复。

如果代码中引用的类位于另一个模块中,请使用其全名如下所示引用它:

#!/usr/bin/env rubymodule MyModule class MyClass; endendc = MyModule::MyClass.new

关于ruby异常

例外情况是Ruby如何让您注意代码中的问题。当代码中遇到错误时,将“引发”或“引发”异常,并且默认情况下程序将关闭。

Ruby发布带有预定义类的异常层次结构。NameErrors与RuntimeError、ThreadError、RangeError、ArgumentError等一起位于StandardError类中。这个类包括在典型Ruby程序中遇到的大多数正常异常。

  • 发表于 2021-10-07 21:03
  • 阅读 ( 144 )
  • 分类:数学

你可能感兴趣的文章

静止的(static)和java期末考试(final in java)的区别

...后面,可以将该变量值更改为其他值。声明为final并用值初始化的变量以后不能在程序中更改。 图03:带有最终变量和继承的程序 根据上述程序,x是最终变量。它被赋值为5。不能更改其他值,因为它被声明为final。Java支持面向...

  • 发布于 2020-10-19 07:48
  • 阅读 ( 324 )

swift编程语言值得学习的7个原因

... 没有未定义或未初始化的变量。 没有数组越界错误。 没有整数溢出错误。 nil(null)值的显式处理。 自动内存管理。 ...

  • 发布于 2021-03-12 01:39
  • 阅读 ( 457 )

常数(constant)和只读(readonly)的区别

...能用于字段,不能用于局部变量。只读字段可以在声明时初始化,也可以在同一类的构造函数中初始化,因此根据所使用的构造函数,程序的不同执行的值可能不同。readonly关键字指定对象的实例变量是不可修改的,并且在声明...

  • 发布于 2021-06-25 14:54
  • 阅读 ( 288 )

最终的(final)和静止的(static)的区别

...能更改(override)。静态值设置为其默认值,但可以重新初始化。 最终与静态:对比图 总结 - 期末考试(of final) vs. 静止的(static) 即使没有对象(实例),键work static也提供访问。突出的类是通过关键字static声明的。如果您不希...

  • 发布于 2021-06-25 15:47
  • 阅读 ( 310 )

常数(constant)和c语言中的变量(variable in c programming)的区别

C语言中常量和变量的主要区别在于常量与变量相似,但是一旦定义了变量,程序就不能修改它,而变量是一个保存数据的内存位置。 C是由dennisritchie开发的结构化编程语言。它有各种编程结构,如循环、函数和指针。定义常量...

  • 发布于 2021-06-30 21:33
  • 阅读 ( 622 )

常数(constant)和只读(readonly)的区别

...changeValue()不能为pi赋值。相反,程序员可以在声明时初始化变量,如下所示。 只读双pi=3.14; 此外,readonly只能在类级别声明,而不能在方法内部声明。 常数(c***tant)和只读(readonly)的区别 定义 常量是指在C#编程中不可更改的...

  • 发布于 2021-07-01 02:14
  • 阅读 ( 175 )

静止的(static)和最终的(final)的区别

...,这解释了静态和最终的根本区别。 变量 虽然可以再次初始化静态变量,但不能再次初始化最终变量。这是静态和最终的主要区别。 方法 静态方法可以被其他静态方法调用,并且只能访问类的静态成员。另一方面,final方法不...

  • 发布于 2021-07-01 02:23
  • 阅读 ( 443 )

常量(constants)和变量(variables)的区别

...组成部分。没有它,所有的数学都会变得模糊和不清楚。常量(c***tants) vs. 变量(variables)常量和变量的区别在于常量不会改变它们的值,它们的值是固定的。而变量的值根据方程的不同而频繁变化。常数和变量在计算机科学和数学...

  • 发布于 2021-07-12 02:08
  • 阅读 ( 493 )

接口(interface)和java中的抽象类(abstract class in java)的区别

...需限定。 实例常量和静态常量都是可能的。静态和实例初始化程序代码也可以计算常量。 第三方便利 接口实现可以添加到任何现有的第三方类中。 必须重写第三方类以仅从抽象类扩展。 能做还是能做 接口通常用来描述类...

  • 发布于 2021-07-13 06:41
  • 阅读 ( 227 )

德尔福单元剖析(德尔福初学者版)

...分:单元头、接口部分、实现部分。还有两个可选部分:初始化和终结。 正如您将看到的,单元必须采用预定义的格式,以便编译器能够读取它们并编译单元代码。 单元头以保留字unit开头,后跟单元名称。当我们在另一个...

  • 发布于 2021-09-10 20:53
  • 阅读 ( 186 )
ldtn13YRI
ldtn13YRI

0 篇文章

相关推荐