常量的特性有些像全局变量,它可以在程序任何地方被引用,但和全局变量不同他可以在类或者模块中定义。
有时候,模块是嵌入到另一个模块中的,这中情况下对常量的引用可以这样写:
如果一个常量存在于全局范围,那么::前面的内容可以省略:
CM_PER_INCH = 2.54 # 定义一个常量.如果你在一个类或者模块中定义了一个常量,那么在引用这个常量的时候需要加上类或者模块前缀。
CM_PER_INCH # 使用这个常量.
class Master
PP=2.00
end
puts Master::PP
有时候,模块是嵌入到另一个模块中的,这中情况下对常量的引用可以这样写:
Conversions::Area::HECTARES_PER_ACRE
如果一个常量存在于全局范围,那么::前面的内容可以省略:
::ARGV # 全局常量 ARGV
需要注意的是我们这里说到的“全局”,实际上就是Object类内,也就是说上面的常量实际上是Object::ARGV。
而且如果没有给常量赋值,那么在调用这个常量的时候你会得到NameError异常。
No comments:
Post a Comment