【Ruby3.x】Module::attr_accessor()メソッドの使い方
attr_accessorメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
attr_accessorメソッドは、Rubyにおいてクラスのインスタンス変数を外部から読み書きできるようにするための、アクセサメソッドを自動的に定義するメソッドです。このメソッドはModuleクラスに定義されており、主にクラス定義内で使用されます。
Rubyのオブジェクト指向プログラミングでは、インスタンス変数は通常、クラスの内部からのみアクセス可能です。しかし、しばしばオブジェクトの状態を表すインスタンス変数の値を外部から参照したり、変更したりする必要が生じます。通常、これらの操作を行うためには、値を取得する「getter(ゲッター)」メソッドと、値を設定する「setter(セッター)」メソッドをそれぞれ手動で定義する必要があります。
attr_accessorメソッドを使用すると、指定されたシンボル(例: :name)に対応するインスタンス変数(例: @name)に対して、自動的にnameという名前のgetterメソッドと、name=という名前のsetterメソッドが生成されます。これにより、開発者は煩雑なメソッド定義を省略し、簡潔にインスタンス変数へのアクセスを可能にすることができます。複数の引数を渡すことで、一度に複数のインスタンス変数に対するアクセサメソッドを定義することも可能です。これは、Rubyのコード量を削減し、可読性を高める上で非常に有用な機能であり、システム開発において頻繁に利用されます。
構文(syntax)
1class MyClass 2 attr_accessor :attribute_name 3end
引数(parameters)
*rest
- names: シンボルまたは文字列で、作成するアクセサメソッドの名前を指定します。
戻り値(return)
Array<Symbol>
attr_accessor メソッドは、指定されたシンボル(名前)に対応するアクセサメソッド(getterとsetter)を自動的に生成します。その戻り値は、生成されたアクセサメソッドの名前をシンボルとして格納した配列です。