论坛首页 编程语言技术论坛

请问attr,attr_reader,attr_writer,attr_accessor的区别是什么?

浏览 6008 次
该帖已经被评为隐藏帖
作者 正文
   发表时间:2006-10-11  
class Test2
  attr_accessor :a, :b
  def initialize()
    @a = 10
    @b = 20
  end
end

t2 = Test2.new
puts t2.a
puts t2.b

在上面这段代码中,如果我将attr_accessor换成attr则
puts t2.b
将报错
但如果将
attr_accessor :a, :b

写成
attr :a
attr :b

就能正常输出
如果写成
attr_reader :a, :b

也是一切正常

请问attr,attr_reader,attr_writer,attr_accessor的区别是什么?
   发表时间:2006-10-11  
这种问题应该自己看书或查阅库文档。

attr_accessor 一举两得: 同时兼备 attr_reader  attr_writer 的作用。
attr 只能带一个符号参数, 第二个参数是一个 bool 参数,用于指示是否为头一个符号参数产生写方法。它的默认值是 false , 不产生写方法。
0 请登录后投票
   发表时间:2007-04-29  
attr_accessor
和attr_accessible有什么区别啊?
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics