• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

详解ruby的attr_accessor和cattr_accessor

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

原文地址: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 

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
ruby webdriver处理flash类型的图片上传发布时间:2022-07-14
下一篇:
[转]Ruby之类的真相发布时间:2022-07-14
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap