Procs e Lambdas em Ruby

Procs e lambdas são ferramentas em Ruby que permitem encapsular blocos de código para serem usados ​​como objetos. Embora sejam semelhantes, eles apresentam algumas diferenças importantes.

Processos: Link to heading

  • Eles são criados usando Proc.new ou o e comercial (&) antes do nome da variável.
  • Podem ser passados ​​como argumentos para outros métodos.
  • Podem ser armazenados em variáveis ​​ou constantes.
  • Podem ser executados como blocos ou como métodos.

Exemplo: Link to heading

saudacao = Proc.new { |nome| puts "Olá #{nome}" }

saudacao.call("john") # => "Olá john"

def saudacao_com_proc(proc, nome)
  proc.call(nome)
end

saudacao_com_proc(saudacao, "ana") # => "Olá ana"

Lambdas: Link to heading

  • Eles são criados usando lambda ou a seta (->).
  • Eles se comportam como métodos anônimos.
  • Podem ser passados ​​como argumentos para outros métodos.
  • Podem ser armazenados em variáveis ​​ou constantes.

Exemplo: Link to heading

saudacao = lambda { |nome| puts "Olá #{nome}" }

saudacao.call("ana") # => "Olá ana"

def saudacao_com_lambda(lambda, nome)
    lambda.call(nome)
end

saudacao_com_lambda(saudacao, "john") # => "Olá john"

Diferenças: Link to heading

  • Return: Um retorno dentro de um proc apenas sai do bloco, enquanto em um lambda ele sai do método que o contém.
  • Argumentos: Os argumentos em lambdas são obrigatórios e devem ser passados ​​em ordem, enquanto em procs são opcionais.
  • Eficiência: procs geralmente são mais lentos que lambdas.

Em resumo: Link to heading

  • Procs: Mais flexível, pode ser usado como blocos ou métodos.
  • Lambdas: Mais eficientes, se comportam como métodos anônimos.

Escolha: Link to heading

A escolha entre um proc e um lambda depende das necessidades específicas do programa.

Continue aprendendo sobre procs e lambdas para aproveitar ao máximo seus benefícios em seus programas!

Dicas adicionais: Link to heading

  • Você pode usar procs para criar fechamentos.
  • Você pode usar lambdas para criar funções anônimas.
  • Você pode usar procs e lambdas para evitar duplicação de código.

Continue experimentando procs e lambdas para criar programas mais elegantes e eficientes!

Aqui estão alguns exemplos adicionais de como procs e lambdas podem ser usados: Link to heading

  • Filtrar dados
  • Classificar dados
  • Dados do grupo
  • Calcular valores
  • Validar entrada
  • Formatar texto

As possibilidades são infinitas!

<< Expressões regulares em Ruby Programação Orientada a Objetos (POO) em Ruby >>