Ruby基础知识-1.变量

变量名必须是单个实体,不含空格。必须以字母,或下划线开头,必须只包含数字,字母,下划线,并且是区分大小写。

1.1    变量分类

1.1.1 局部变量

以小写字母或下划线卡头。

局部变量也就是基本的变量,在变量定义的相同地方使用。

1.1.2 全局变量

以$开头。

1.1.3 类变量

类变量就是在类定义中用@@开头的变量。

类变量是用于存储类的全局信息,它只属于类,不同与类实例变量(即用@开头定义的变量)每一个类的对象都有一份数据。 类变量是可以被继承的,也就是说如果我们派生一个子类,那么在子类中是可以访问父类的类变量的。类变量在访问前必须赋值。子类和父类共享一份数据,对一个类的修改会反映到另一个类中。

1.1.4 实例变量

对象中定义,以@开头。

类的类实例变量是在类的类方法中或方法外边(不能在实例方法中,那是类的实例变量)以@开头定义的变量,这样定义的变量值属于类对象本身,不能够被子类继承。如果要定义需要和子类共享的类全局数据,使用类变量;但是如果要定义仅供类本身使用的类全局数据可以使用类实例变量。还有一点需要注意的是,和类变量不同的是类实例变量不要求访问前必须赋值,不赋值它的值就是nil

1.1.5 常量

以大写字母开头。

1.1.6 变量输出

使用"#{var}"输出。

例:

class Demo
    $Global="Global!" #全部变量
    NAME="name" #常量
    @@sex=1 #类变量
    attr_accessor :nickname #用symbol定义的实例变量访问器

    def initialize()
        @name="Tom!" #类实例变量
    end

    def get_sex
        puts @@sex
    end

    def test()
        num1 = 123 #局部变量
        num2 = 456
        puts num1
        puts "num1+num2=#{num1+num2}"
        puts @name
    end
end

puts $Global
puts Demo::NAME
demo = Demo.new
demo.test
demo.get_sex
demo.nickname = 'jack'
puts demo.nickname
posted @ 2013-05-23 13:43  swzhou  阅读(267)  评论(0)    收藏  举报