【Ruby3.x】Module::attr_reader()メソッドの使い方
attr_readerメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
attr_readerメソッドは、Rubyのクラスやモジュールにおいて、指定されたインスタンス変数に対する読み取り専用のアクセスメソッド(getterメソッド)を自動的に定義するメソッドです。このメソッドは、Moduleクラスに属しており、クラス定義の本体内で使用されます。
プログラマが手動でインスタンス変数の値を返すメソッド(例: def name; @name; end)を記述する代わりに、attr_readerメソッドにインスタンス変数名をシンボルまたは文字列で渡すことで、同じ機能を持つメソッドを簡潔に生成できます。例えば、クラス内でattr_reader :name, :ageと記述すると、インスタンス変数@nameの値を返すnameメソッドと、インスタンス変数@ageの値を返すageメソッドがそれぞれ自動的に作成されます。
これにより、コードの記述量を大幅に削減し、クラス定義の可読性を向上させることができます。また、オブジェクトの内部状態を直接操作されることなく、外部から安全に参照できるようにする、いわゆる「カプセル化」の原則を守りながら、必要な情報へのアクセス経路を提供する一般的な手法として利用されます。システムエンジニアを目指す初心者の方々にとって、Rubyでのオブジェクト指向プログラミングを学ぶ上で頻繁に遭遇し、効率的なコーディングに不可欠な機能の一つです。
構文(syntax)
1class MyClass 2 attr_reader :attribute_name1, :attribute_name2 3end
引数(parameters)
*rest
- rest: 読み取り専用メソッドとして公開したいインスタンス変数の名前をシンボルまたは文字列で指定します。複数指定可能です。
戻り値(return)
self
このメソッドは、自身が定義されたモジュール(またはクラス)オブジェクトを返します。