Páginas filhas
  • Representação da sintaxe das funções

Documento: Representação da sintaxe das funções


Uma função é identificada pelo seu nome seguido de um abre e fecha parênteses, dentro dos quais haverá uma lista de argumentos e parâmetros separados por vírgulas, caso seja necessário. Mesmo que a função não possua argumentos ou parâmetros, é obrigatória a utilização do abre e fecha parênteses.

Como o AdvPL permite que o número de valores passados para uma função seja menor do que o número de valores esperados por ela, uma diferenciação entre eles é necessária. Os valores passados para uma função são chamados de argumentos. Os valores esperados por uma função são os parâmetros.

Essa sintaxe para representar as funções é utilizada tanto na sua codificação quanto na sua chamada para ser executada dentro de outras rotinas. Por exemplo:

// Função utilizada dentro de uma expressão
cDiaSem := "Hoje é uma " + DiaToSem(DATE())

// Função utilizada como uma linha de instrução
Inclui()

A chamada de uma função para execução, quer ela pertença à biblioteca padrão do AdvPL ou seja criada pelo programador, é uma expressão que sempre resulta um valor. O tipo de dado (caracter, numérico, data, lógico, array ou bloco de código) deste valor resultante é determinado pela própria função. Por isso, uma função pode ser parte de qualquer outra expressão válida, como, por exemplo, fazer parte da lista de argumentos e parâmetros de outra função.

As funções específicas e customizadas criadas pelos usuários e programadores, chamadas de funções de usuário, não são diferentes das funções padrão do AdvPL. Elas seguem a mesma estrutura e as mesmas regras. Há apenas duas diferenças: A declaração da função deve ser feita com a classe User, conforme explicado e mostrado no documento "Classes de Funções" contido na pasta "Programa e Funções", e a chamada de uma função de usuário deve ser realizada pelo identificador "U_" mais o nome da função. Por exemplo, um programador criou a função específica EspCalc(cTipo). Nesse caso, a chamada dessa função seria U_EspCalc(cTipo).
 

 

  • Sem rótulos