zoukankan      html  css  js  c++  java
  • 详解ruby的attr_accessor和cattr_accessor

    原文地址:http://lee2013.iteye.com/blog/1098914

    1. attr_accessor的用法相当简单, 就相当于getter和setter,看一个类就知道怎样用了:

    Ruby代码  收藏代码
    1. class Test  
    2.   attr_accessor :name  
    3.     
    4.   def initialize()  
    5.     @name = "yanzilee9292"  
    6.   end  
    7. end  
    8.   
    9. #test  
    10. puts Test.new.name  

    保存这个类为test.rb文件, 通过命令行运行 ruby test.rb, 会得到以下结果:

       yanzilee9292

    2. 如果我们把attr_accessor去掉, 该怎么输出name的值呢

    Java代码  收藏代码
    1. class Test  
    2.   def initialize()  
    3.     @name ="yanzilee9292"  
    4.   end  
    5.   #test  
    6.   puts Test.new.instance_eval {@name}  
    7. end  

    可以看到, 用attr_accessor会把事情变得更加简单

    3. cattr_accessor和attr_accessor的区别

    cattr_accessor就相当于java的类静态变量, 对所有的类实例共享

    Ruby代码  收藏代码
      1. class Counter  
      2.   cattr_accessor :class_count  
      3.   attr_accessor :instance_count  
      4. end  
      5.    
      6. counter1 = Counter.new  
      7. counter1.instance_count = 1  
      8. counter1.class_count = 1  
      9.    
      10. counter2 = Counter.new  
      11. p counter2.instance_count  
      12. #> nil  
      13. p counter2.class_count  
      14. #> 1 
  • 相关阅读:
    设置VS2017背景图片
    NuGet的简单使用
    C#6.0,C#7.0新特性
    openFileDialog的Filter属性设置
    C# 获取当前路径7种方法
    正则表达式总结
    IDEA设置switch/case代码块自动补齐
    CentOS7使用yum安装RabbitMQ
    vue react 路由history模式刷新404问题解决方案
    @Component, @Repository, @Service的区别
  • 原文地址:https://www.cnblogs.com/wangyuyu/p/3385781.html
Copyright © 2011-2022 走看看