Written by Kasumi

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で、あるオブジェクト内で定義されてるインスタンス変数を外から参照・編集する方法について紹介しました。

以上で解説を終わります。

関連記事

Ruby

Rubyで親クラスを継承した子クラスを作成する方法

2022.08.17
80
Ruby

Rubyで配列要素を昇順・降順でソートする方法【sortメソッドを使おう】

2022.08.03
118
Ruby

Rubyでハッシュ(連想配列)からキーと値を取り出す方法

2022.08.01
119
Ruby

RubyのHash(連想配列)で要素を追加・更新・削除する方法

2022.07.29
153