Rubyでインスタン変数の値をオブジェクトの外から参照・編集する方法

Rubyで、あるオブジェクト内で定義されてるインスタンス変数を外から参照・編集したい。
本記事ではこの様な悩みを解決。
実装方法について解説します。
インスタンス変数を外から参照する
class Introduction
attr_reader :name
def initialize(name)
#インスタンス変数
@name = name
end
end
#インスタンス化
intro = Introduction.new("kasumi")
puts intro.name
#出力結果
#kasumi
インスタンス変数をオブジェクトの外から参照するコード例です。
参照するには、attr_readerメソッドを使います。
使い方は以下の通りです。
attr_reader :インスタンス変数名
上記を参照したいオブジェクト内の冒頭で定義します。
外からインスタンス変数が参照可能になります。
インスタンス変数を外から編集する
class Introduction
attr_writer :name
def initialize(name)
#インスタンス変数
@name = name
end
def message()
puts "こんにちは#{@name}です。"
end
end
#インスタンス化
intro = Introduction.new("kasumi")
intro.message
intro.name = '山田' # @nameを変更する
intro.message
#出力結果
#こんにちはkasumiです。
#こんにちは山田です。
インスタンス変数をオブジェクトの外から編集するコード例です。
編集するには、attr_writerメソッドを使います。
使い方は以下の通りです。
attr_writer :インスタンス変数名
attr_readerメソッドと同じく、オブジェクト内に記述します。
外からインスタンス変数が編集可能になります。
インスタンス変数を外から参照・編集、両方可能にする
class Introduction
attr_accessor :name
def initialize(name)
#インスタンス変数
@name = name
end
def message()
puts "こんにちは#{@name}です。"
end
end
#インスタンス化
intro = Introduction.new("kasumi")
puts intro.name
intro.name = '山田' # @nameを変更する
intro.message
#出力結果
#kasumi
#こんにちは山田です。
インスタンス変数をオブジェクトの外から参照と編集、両方可能にするコード例です。
参照と編集を両方可能にするにはattr_accessorメソッドを使います。
使い方は以下の通りです。
attr_accessor :インスタンス変数名
他の紹介したメソッドと同じく、オブジェクト内に記述します。
外から参照と編集が可能になります。
まとめ
Rubyで、あるオブジェクト内で定義されてるインスタンス変数を外から参照・編集する方法について紹介しました。
以上で解説を終わります。