3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Ruby】instance_variable_getメソッドについて

Last updated at Posted at 2024-11-05

どうもこんにちは。

今回はRubyのinstance_variable_getメソッドについて、備忘録としてまとめました。

instance_variable_getメソッドとは

instance_variable_getメソッドは、オブジェクトのインスタンス変数の値を取得するためのメソッドです。

Rubyでは通常、インスタンス変数はクラス内で直接アクセスすることはできず、アクセサメソッド(attr_accessorattr_readerattr_writer)を通じてアクセスします。

しかし、instance_variable_getを使用すると、これらのアクセサメソッドを介さずに直接インスタンス変数にアクセスできます。

基本的な構文

object.instance_variable_get(:@variable_name)
  • object: インスタンス変数を持つオブジェクト
  • :@variable_name: 取得したいインスタンス変数のシンボル。先頭に@を付ける必要があります

instance_variable_setメソッドとの関係

instance_variable_getメソッドとペアでよく使用されるのがinstance_variable_setメソッドです。instance_variable_setはオブジェクトのインスタンス変数に値を設定するためのメソッドです。

object.instance_variable_set(:@variable_name, value)
  • object: インスタンス変数を持つオブジェクト
  • :@variable_name: 設定したいインスタンス変数のシンボル
  • value: インスタンス変数に設定する値

サンプルコード

サンプルコード
class Person
  def initialize(name, age)
    @name = name
    @age = age
  end
end

person = Person.new("Alice", 30)

# インスタンス変数の値を取得
name = person.instance_variable_get(:@name)
age = person.instance_variable_get(:@age)

puts "名前: #{name}"
puts "年齢: #{age}"

# => 名前: Alice
# => 年齢: 30

# インスタンス変数の値を設定
person.instance_variable_set(:@age, 31)

# 更新された値を取得
updated_age = person.instance_variable_get(:@age)
puts "更新後の年齢: #{updated_age}"

# => 更新後の年齢: 31
3
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?