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 
  • 相关阅读:
    C++初识
    实现小程序iphonex与iphone6底部适配
    vue-element实现外部独立全选
    flex中图片元素被挤压问题
    vue+element-Ui实现简单的表单必填项验证(1)
    Vuex——项目应用(1)
    Vue项目小应用
    transtion过渡
    axios的高阶用法
    阿里云服务器初步使用介绍
  • 原文地址:https://www.cnblogs.com/wangyuyu/p/3385781.html
Copyright © 2011-2022 走看看