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 
  • 相关阅读:
    SuperMap关联外部数据库
    617Tips
    第一次上课
    文本字段也可做自定义专题图
    Oracle笔记一
    Oracle笔记二
    复制追加数据集失败
    夏季恋语
    最浪漫的事
    爱了你那么多年
  • 原文地址:https://www.cnblogs.com/wangyuyu/p/3385781.html
Copyright © 2011-2022 走看看