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
  • 相关阅读:
    python 中的[::-1]
    python 闭包
    elastic
    文件上传进度条修改
    python decorator的理解
    同方爬虫--面试题
    js typeof
    浅谈软件项目实施
    数独·唯一性技巧(Uniqueness)-1
    数独二
  • 原文地址:https://www.cnblogs.com/ielse/p/14048588.html
Copyright © 2011-2022 走看看