構造体について(Struct, Data)
RubyのStructクラス
複数のデータをまとめて格納する箱みたいなもの
利用ケース
そのクラスが複数のデータを格納する箱としての役割しか持たない時
データ構造をクラスとして表現したい時
作成方法
code:rb
Size = Struct.new(:width, :heigt)
=> これでサイズクラスのような構造体が作成
size = Size.new(10, 30)
=> Sizeのインスタンス
=> size.widthやsize.width= でアクセス可能
size.width=200
=> 200
構造体はキーワード引数でも作成できる
code:rb
Size.new(width:10, height:30)
https://docs.ruby-lang.org/ja/latest/class/Struct.html
Enumerableから継承しているメソッドがあるのでeachとかeach_with_objectがつかえる
イミュータブルな構造体にする時はDataを使う
code:rb
Product = Data.define(:name, :price)
product = Product.new('apple', 100)
product.name='orange'
(irb):46:in <main>': undefined method name=' for an instance of Product (NoMethodError)