Usina BRAdvPL Guia
Entrar
← Todos os tópicos
GUIA PRÁTICOEm revisão

Blocos de código com parâmetros e Eval

Executa uma expressão parametrizada e usa seu retorno explicitamente.

Blocos de código com parâmetros e EvalAdvPL
01 · VISÃO GERAL

Visão geral

Um bloco usa { |parâmetros| expressões } e recebe os valores informados a Eval após o próprio bloco. O retorno é a última expressão executada; um bloco vazio retorna Nil. Os parâmetros são locais ao bloco; capturar uma variável do chamador é outra forma de vínculo, com efeitos sobre memória e duração do contexto. O exemplo limita-se a dois números e uma soma, sem macroexecução de texto. Em callbacks de interface ou ASort, respeite os argumentos e o tipo de retorno definidos pelo componente chamador. (TOTVS, s.d., refs. 1–2)

Retorno

Não há retorno único: trata-se de um roteiro composto.

03 · EXEMPLO PRÁTICO

Exemplo comentado

#Include "Protheus.ch"
User Function EdBloco()
    Local bSomar := {|nUm, nDois| nUm + nDois}
    Local nTotal := Eval(bSomar, 7, 3)
    // Criar o bloco nao executa a expressao.
    ConOut(cValToChar(nTotal))
Return Nil
Resultado esperado

Resultado esperado: 10. Em revisão: exemplo editorial não compilado nem executado em Protheus. Conferir includes, release, RDD e contexto antes de homologar.

BOAS PRÁTICAS
  • Manter blocos curtos. Validar tipos no contrato do chamador e evitar guardar callbacks indefinidamente ou avaliar texto de origem não confiável.
  • Em revisão: exemplo editorial não compilado nem executado em Protheus. Conferir includes, release, RDD e contexto antes de homologar.

Conteúdos relacionados

REFERÊNCIAS
  1. TOTVS. Blocos de Código. TDN. Consulta em 2026-10-26.
  2. TOTVS. Eval. TDN. Consulta em 2026-10-26.
Situação
Em revisão
Página criada em
Última revisão em
Idioma original
Português
Revisão
Usina.BR
0 comentário(s) aprovado(s)

Comentários

Ainda não há comentários aprovados.

Entre com Google ou Microsoft para comentar.

Powered by Usina Docs · Alpha