HOWTO · Ruby

Ruby 中的 Attr_accessor、Attr_reader 和 Attr_writer

本文展示瞭如何在 Ruby 中使用 attr_accessor、attr_reader 和 attr_writer 向外部公開類資料。

本頁內容

attr_accessor、attr_reader 和 attr_writer 用於將你的意圖傳達給讀者,並使編寫類更容易。

在 Ruby 中使用 get_data 和 set_data 更改儲存在例項變數中的資料

我們希望其他類訪問或更改儲存在例項變數中的資料。

class Foo
  def initialize(data)
    @data = data
  end

  def get_data
    @data
  end

  def set_data(new_data)
    @data = new_data
  end
end

對於初學者來說,這是一種笨拙的入門方式。Ruby 提供了一種更方便的方式來實現與 attr_accessor 相同的結果。

在 Ruby 中使用 attr_accessor 訪問或更改儲存的例項變數中的資料

class MyClass
  attr_accessor :data

  def initialize(data)
    @data = data
  end
end

attr_accessor 將為 MyClass 定義兩個例項方法:getter #data 和 setter #data=

我們可以使用上述的 get_data 和 set_data 方法。

my_instance = MyClass.new('private_information')

my_instance.data
=> 'private_information'

my_instance.data = 'information_changed'

puts my_instance.data

輸出:

'information_changed'

當我們只需要類中的 getter 方法時,我們可以使用 attr_reader 而不是 attr_accessor。

僅使用 attr_writter 定義 setter 方法。