ExpertiDict

Ruby · Avançado · Inglês · Técnico

deconstruct keys

/ˌdikənˈstɹʌkt kiz/método

Método que um objeto implementa para participar de pattern matching com hash, como em case obj in {x:, y:}. Recebe as chaves pedidas e devolve um hash com os valores.

Onde usar

Aparece em classes próprias que querem ser desestruturadas com case e in. Struct e Data já o fornecem; em classes comuns você mesmo o define.

Em código

class Ponto
  def initialize(x, y); @x, @y = x, y; end
  def deconstruct_keys(_k) = {x: @x, y: @y}
end
case Ponto.new(1, 2)
in {x:, y:} then puts x + y  # => 3
end

Exemplos

I defined deconstruct_keys so the class works in case in.

Defini deconstruct_keys para a classe funcionar no case in.

Struct already ships with deconstruct keys.

O Struct já vem com deconstruct keys.

Cuidado

Não o confunda com deconstruct, sem keys, que devolve um array para padrões posicionais como in [a, b].

Veja também

Todos os termos de Ruby