Ruby中类变量和实例变量的比较

 更新时间:2015年05月23日 09:43:59   投稿:junjie  
这篇文章主要介绍了Ruby中类变量和实例变量的比较,本文讲解了4点类变量和实例变量的不同之处,并给出了代码实例,需要的朋友可以参考下

1、类变量名以@@开始,一个类变量被这个类所有的实例对象共享;实例变量名以@开始,每个实例对象有各自不同的实例变量;

2、类变量在使用前必须初始化,否则在使用时会报错;而实例变量如果没有初始化,则使用时返回nil;

3、类变量是私有的,在类外无法直接访问,可以通过类方法和实例方法访问;

复制代码 代码如下:

class B
    @@number = 11
    @@num = 22
 
    def my_method      #定义实例方法
        puts @@number
    end
 
    def self.my_method  #定义类方法
        puts @@num
    end
end
 
b = B.new()
puts b.my_method() #通过实例方法访问类变量  => 11
puts B.my_method() #通过类方法访问类变量    => 22

4、实例变量也是私有,无法在类外直接引用,可以通过类方法和实例方法访问;

复制代码 代码如下:

class B
      @num  = 11    #实际上这是“类的实例变量”
      @test = 22
      def my_method      #定义实例方法
          puts @num = 33 #跟前面定义的@num不在一个作用域   =>33
          puts @test     #跟前面定义的@test不在一个作用域里,未赋初值,因此返回nil 
          puts @new = 567  #在实例运行my_method时才定义的实例变量 =>567
      end
      def self.my_method      #定义类方法
         puts @num        #这里的@num就是前面定义过的@num  =>11
         puts @test       # =>22
     end
 end
 
 b = B.new()
 
 b.my_method
 puts "--------------------"
 B.my_method

相关文章

  • 详解Ruby中范围的概念

    详解Ruby中范围的概念

    这篇文章主要介绍了详解Ruby中范围的概念,需要的朋友可以参考下
    2015-05-05
  • 详解组合模式的结构及其在Ruby设计模式编程中的运用

    详解组合模式的结构及其在Ruby设计模式编程中的运用

    这篇文章主要介绍了组合模式的结构及其在Ruby设计模式编程中的运用,组合模式在Ruby on Rails框架开发项目中也经常被用到,需要的朋友可以参考下
    2016-03-03
  • Ruby on Rails中Rack中间件的基础学习教程

    Ruby on Rails中Rack中间件的基础学习教程

    Rack是一个连接Ruby程序与服务器程序之间的中间件,甚至可以说Rails也是在Rack的基础上建立起来的,这里我们就来为大家带来Ruby on Rails中Rack中间件的基础学习教程
    2016-06-06
  • 对优化Ruby on Rails性能的一些办法的探究

    对优化Ruby on Rails性能的一些办法的探究

    这篇文章主要介绍了对优化Ruby on Rails性能的一些办法的一些探究,包括避免内存密集型的应用和GC等相关问题的探讨,需要的朋友可以参考下
    2015-11-11
  • Ruby里4种比较函数(equal?, eql?, ==, ===)详解

    Ruby里4种比较函数(equal?, eql?, ==, ===)详解

    本文给大家详细介绍了Ruby中的4种比较函数(equal?, eql?, ==, ===)的用法,并用具体示例进行了讲解,希望对大家学习ruby能够有所帮助。
    2016-02-02
  • ruby实现github第三方认证

    ruby实现github第三方认证

    GitHub在用户认证过程中采用了双匙机制,在双匙加密机制中,只有合法用户才拥有私匙,只要GitHub在收到请求时可以证明提交请求的客户端上拥有该私匙,即可以确认该操作是由合法用户发起的。我们通过ruby来简单模拟下吧。
    2015-06-06
  • Ruby程序中正则表达式的基本使用教程

    Ruby程序中正则表达式的基本使用教程

    和Python与Perl一样,Ruby对正则表达式的支持也是相当好的,这里送出整理的Ruby程序中正则表达式的基本使用教程,需要的朋友可以参考下
    2016-05-05
  • 详细解析Ruby中的变量

    详细解析Ruby中的变量

    这篇文章主要介绍了详细解析Ruby中的变量,是Ruby学习中最基础的知识之一,需要的朋友可以参考下
    2015-05-05
  • Ruby与Ruby on Rails框架环境搭建的简明教程

    Ruby与Ruby on Rails框架环境搭建的简明教程

    这篇文章主要介绍了Ruby与Ruby on Rails框架环境搭建的简明教程,包括RubyGems的升级与OpenSSL的支持等配置,需要的朋友可以参考下
    2016-05-05
  • Ruby元编程小结

    Ruby元编程小结

    这篇文章主要介绍了Ruby元编程小结,元编程是可以在运行时动态的操作语言结构(如类、模块、实例变量等)的技术,需要的朋友可以参考下
    2015-01-01

最新评论