Trilha Júnior Trilha

Closures Ruby

Este curso explica o que é um closure em Ruby: um Proc ou lambda que captura as variáveis locais visíveis na criação e mantém acesso vivo a elas. Ele monta uma fábrica de contadores cujo estado só é alcançável pelo lambda devolvido. Compara o return dentro de um lambda, que sai só do lambda, com o return dentro de um Proc, que sai do método que o criou. Trata ainda do LocalJumpError levantado quando um Proc sobrevive ao seu método e de lambdas guardados num Hash, chamados pela chave.

O que você vai aprender

  • ✓O que um closure captura e por que ele mantém uma ligação viva com as variáveis
  • ✓Como montar um método que devolve um closure com estado privado e contínuo
  • ✓Como o return se comporta dentro de um lambda e dentro de um Proc
  • ✓Por que um Proc com return levanta LocalJumpError depois que seu método termina
  • ✓Como guardar lambdas num Hash e chamá-los por uma chave escolhida em tempo de execução
Prévia grátis · Aula 1 3 min de leitura

O que um closure captura

A aula "Proc e lambda: uma olhada breve", do curso Blocos Ruby (do..end), já cobriu bastante coisa. &block transforma um bloco recebido num objeto Proc, e Proc.new e proc constroem um diretamente. .call, .() e [] são três formas de rodá-lo. lambda e o literal stabby ->() { } constroem uma versão…

Ler a aula completa grátis →

Currículo

7 aulas
Digite para buscar...