Usina BRAdvPL Guia
Entrar
← Todos os tópicos
FUNçãOEm revisão

AEval

AEval( <aArray>, <bBlock>, [nStart], [nCount] ) --> aRet

Executa um bloco para cada elemento de uma faixa.

AEvalAdvPL
01 · VISÃO GERAL

Visão geral

O bloco recebe o elemento e seu índice. Em arrays multidimensionais, cada elemento de primeiro nível pode ser um subarray; AEval não percorre automaticamente todas as células. O retorno de cada avaliação não cria uma nova coleção transformada: para isso, escreva em um destino separado. O exemplo acumula uma soma sem alterar os valores de origem. (TOTVS, s.d., ref. 1)

02 · SINTAXE

Sintaxe

AEval( <aArray>, <bBlock>, [nStart], [nCount] ) --> aRet

Parâmetros

aArray
ArrayObrigatório

Array percorrido.

bBlock
Bloco de códigoObrigatório

Bloco que recebe elemento e índice.

nStart
NuméricoOpcional

Primeira posição; padrão 1.

nCount
NuméricoOpcional

Quantidade a partir do início; padrão até o final.

Retorno

Array após a operação; não presumir clonagem independente.

03 · EXEMPLO PRÁTICO

Exemplo comentado

#Include "Protheus.ch"

User Function EdAeval()
    Local aValores := {10, 20, 30}
    Local nTotal := 0
    // O acumulador e externo; o array nao recebe novas atribuicoes.
    AEval(aValores, {|nValor| nTotal += nValor})
    ConOut(cValToChar(nTotal))
Return Nil
Resultado esperado

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

BOAS PRÁTICAS
  • Validar o tipo dos elementos antes de somar dados externos. Evitar alterar o tamanho do array durante sua avaliação.
  • 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. AEval. TDN. Consulta em 2026-10-25.
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