ExpertiDict

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

to proc

/tu pɹɑk/método

Método que converte um objeto em Proc quando ele é passado com &. Symbol, Method e Hash já o têm; classes próprias podem defini-lo para valer como bloco.

Onde usar

Aparece na explicação de map(&:nome) e ao criar objetos chamáveis que se encaixam em métodos que recebem bloco, como um validador reaproveitável.

Em código

class Multiplicador
  def initialize(n); @n = n; end
  def to_proc = ->(x) { x * @n }
end
triplo = Multiplicador.new(3)
p [1, 2, 3].map(&triplo)  # => [3, 6, 9]
p({ a: 1 }.to_proc.call(:a))  # => 1

Exemplos

Define to_proc so the object works with the ampersand.

Defina to_proc para o objeto funcionar com o e comercial.

Symbol and Hash both implement to_proc.

Symbol e Hash implementam to_proc.

Cuidado

Precisa devolver um Proc de verdade; qualquer outro tipo causa TypeError no uso do &.

Veja também

Todos os termos de Ruby