deconstruct -> [object]
[permalink][rdoc][edit]-
self のメンバの値を配列で返します。
Measure = Data.define(:amount, :unit) distance = Measure.new(10, 'km') distance.deconstruct # => [10, "km"]
このメソッドは以下のようにパターンマッチで利用されます。
Measure = Data.define(:amount, :unit) distance = Measure.new(10, 'km') case distance in n, 'km' # 裏側で #deconstruct を呼ぶ puts "It is #{n} kilometers away" else puts "Don't know how to handle it" end # "It is 10 kilometers away" が表示される # 以下のようにも書ける case distance in Measure(n, 'km') puts "It is #{n} kilometers away" # ... end
[注意] 本メソッドの記述は Data のサブクラスのインスタンスに対して呼び出す事を想定しています。Data.define は Data のサブクラスを作成する点に注意してください。
[SEE_ALSO] パターンマッチ/非プリミティブなオブジェクトのマッチ: deconstruct メソッドと deconstruct_keys メソッド