Ruby学习: 全局变量 和常量

一、全局变量

ruby中支持全局变量,ruby中的全局变量有如下几个特点:

1)标识符以$开头标记

2)全局变量可以在程序的任何地方加以引用

3)全局变量无需提前进行变量声明。引用尚未初始化的全局变量时,其值为 nil。

我们下面来看例子

class Demo
    def print
        puts $a
    end
    
end    


puts $a   #引用未声明的全局变量,$a这时值为nil

demo = Demo.new
demo.print  #类方法中引用未声明的全局变量,$a这时值为nil

$a=12
demo.print  #输出为12,因为这时$a已经有值了

需要说明的是,在实际编码中我们尽量不要自己定义全局变量,使用全局变量是非常不好的一个编程方式。

二、常量

ruby中的常量,必须在类中定义,不能定义到方法中,常量标识符的首字母必须大写。

举例:

class Demo
    Pi = 3.14
    
    def print
        puts Pi
    end
    
end    

#创建对象,调用对象的方法
puts Demo::Pi

demo = Demo.new
demo.print

Demo::Pi = 4  #会有警告,但不会出错,而且修改能生效

demo.print

注意,和其它语言区别的是。常量的值可以在类的外部被修改 (不能在类的方法中被赋值修改),虽然会报警告,但不会出错。

原文地址:https://www.cnblogs.com/51kata/p/5475046.html