Ruby 中 attr_reader, attr_writer, attr_accessor 的作用是什么?

· 约 3 分钟读完 · 第 76 / 199 章

推荐答案

在 Ruby 中,attr_reader、attr_writer 和 attr_accessor 是用于简化类中实例变量访问和修改的便捷方法。

  • attr_reader:生成一个读取实例变量的方法。
  • attr_writer:生成一个写入实例变量的方法。
  • attr_accessor:同时生成读取和写入实例变量的方法。

本题详细解读

attr_reader

attr_reader 用于生成一个读取实例变量的方法。它接受一个或多个符号作为参数,每个符号对应一个实例变量名。例如:

在这个例子中,attr_reader :name 生成了一个名为 name 的方法,用于读取 @name 实例变量的值。

attr_writer

attr_writer 用于生成一个写入实例变量的方法。它同样接受一个或多个符号作为参数。例如:

在这个例子中,attr_writer :name 生成了一个名为 name= 的方法,用于设置 @name 实例变量的值。

attr_accessor

attr_accessor 是 attr_reader 和 attr_writer 的结合体,它同时生成读取和写入实例变量的方法。例如:

在这个例子中,attr_accessor :name 生成了 name 和 name= 两个方法,分别用于读取和设置 @name 实例变量的值。

总结

  • attr_reader:生成读取实例变量的方法。
  • attr_writer:生成写入实例变量的方法。
  • attr_accessor:同时生成读取和写入实例变量的方法。

这些方法极大地简化了 Ruby 类中实例变量的访问和修改操作,减少了重复代码的编写。