Executa um bloco de código
Sintaxe
Eval( < bBloco >, [ xVariavel ] )
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
---|---|---|---|---|
bBloco | bloco de código | Indica o bloco de código que será avaliado. | X |
|
xVariavel | qualquer | Indica o argumento que será avaliado no bloco de código. |
|
|
Retorno
Nome | Tipo | Descrição |
---|---|---|
xRetorno | qualquer | Retorna o valor da última expressão do bloco de código. |
Exemplos
Exemplo 1
// Exemplo 1 #DEFINE CRLF Chr(13)+Chr(10) #DEFINE TAB Chr(09) User Function Exemplo() Local bBloco := {|nArg| nArg + 1 } Local cMensagem := "" Local nCount := 0 //+----------------------------------------------------------------------------+ //|Exemplifica o uso da função Eval | //+----------------------------------------------------------------------------+ cMensagem += "Antes de avaliar o bloco de código: " + CRLF cMensagem += TAB + "nCount = " + cValToChar(nCount) + CRLF nCount := Eval(bBloco, nCount) cMensagem += "Depois de avaliar o bloco de código: " + CRLF cMensagem += TAB + "nCount = " + cValToChar(nCount) //+----------------------------------------------------------------------------+ //|Apresenta uma mensagem com os resultados obtidos | //+----------------------------------------------------------------------------+ Return MsgInfo(cMensagem, "Eval - Exemplo") //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Exemplo 2 //Este exemplo cria um bloco de código que incrementa um número e depois o avalia: bBloco := { |nArg| nArg + 1 } EVAL(bBloco, 1) // Resulta: 2 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Exemplo 3 //Este exemplo demonstra como um bloco de código pode ser compilado em tempo de execuçao utilizando-se o operador macro (&): bBloco := &("{ |nArg| nArg + 1 }") EVAL(bBlock, 1) // Avalia o bloco
Resultado do Exemplo
Abrangência
Microsiga Protheus 8.11 , Protheus 10 , TOTVS Application Server 10 , ByYou Application Server
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas