【Ruby3.x】Struct::[]=()メソッドの使い方
[]=メソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
[]=メソッドは、RubyのStructクラスのインスタンス(複数のデータをまとめた構造体オブジェクト)が持つ、特定のメンバーに新しい値を代入するために使用されるメソッドです。
このメソッドは、配列のインデックスやハッシュのキーを指定するのと同様に、角括弧[]を使って対象のメンバーを指定し、そのメンバーに新しい値を設定します。メンバーの指定方法としては、構造体が定義された際のメンバーの順番を示す0から始まる整数、またはメンバー名を直接表すシンボルを利用することができます。
たとえば、:nameと:ageというメンバーを持つStructオブジェクトがあった場合、オブジェクト[0] = "山田"のようにインデックスで指定したり、オブジェクト[:name] = "山田"のようにシンボルで指定したりして、対応するメンバーの値を更新することが可能です。
このメソッドを使うことで、Structオブジェクトが保持する複数のデータの中から、意図する項目に新しい値を柔軟に設定し、オブジェクトの状態を変化させることができます。Structオブジェクトのデータを効率的に操作するための、基本的ながらも重要な手段の一つです。
構文(syntax)
1# Structを定義 2Person = Struct.new(:name, :age) 3 4# インスタンスを生成 5person = Person.new("Alice", 30) 6 7# []= メソッドを使用して、'name' フィールドの値を "Bob" に設定 8person[:name] = "Bob"
引数(parameters)
index, value
- index: 格納する要素の位置を指定するインデックス
- value: 格納する要素の値
戻り値(return)
Object
Structクラスの[]= メソッドは、指定されたキーに対応する値を代入します。このメソッドの戻り値は、代入された値そのもの(Object)です。