zoukankan      html  css  js  c++  java
  • ruby中attr_accessor方法的理解

    attr_accessor相当于attr_reader和attr_writer的合集,实际上是在定义类成员变量的时候就给他定义了一个get和set方法。

    在ruby中,类成员变量都是私有的,不能直接通过(类名.成员变量名)这样来对成员变量值进行操作。

    在这个实例中可以看到,使用attr_accessor定义的成员可以直接对其进行set和get的操作,如果没有attr_accessor,则不行。

    # 例子1
    # 使用attr_accessor 运行正常

     1 class AttrAccessorTest1
     2   attr_accessor :name
     3   def initialize()
     4     @name = "test attr"
     5   end
     6 end
     7 t = AttrAccessorTest1.new
     8 puts t.name
     9 t.name = "test attr modify"
    10 puts t.name
     
    # 例子2
    # 未使用attr_accessor 运行报错 Error: #<NoMethodError: undefined method 'name'>
     1 class AttrAccessorTest2
     2   def initialize()
     3     @name = "test attr"
     4   end
     5 end
     6 t = AttrAccessorTest2.new
     7 # ↓↓↓↓↓↓ 未使用attr_accessor的name是不可通过 (类名.成员变量名),这样来对成员变量值进行操作
     8 puts t.name
     9 t.name = "test attr modify"
    10 puts t.name
  • 相关阅读:
    洛谷P1880 石子合并
    洛谷P3265 装备购买
    bzoj1345 序列问题
    从群里抄来的某题
    poj2689 Prime Distance
    灯 & 树
    [HNOI2013]游走
    A
    B
    hdu 1247 Hat’s Words(字典树)
  • 原文地址:https://www.cnblogs.com/ielse/p/14048588.html
Copyright © 2011-2022 走看看