Qual a forma básica de declarar uma função tipada?
Function name (parameters) as Type
Visite os Tipos Nativos.
No atual estágio, Static Function, Main Function e Function podem ser tipadas, sem restrições.
A tipagem para User Function (e possivelmente outras formas) ainda está em processo de validação.
Exemplo - Declaração básica de propriedades tipadas
Function typedFunc() as Numeric
O compilador checa se o retorno da função é compatível com o seu tipo declarado?
Sim, o compilador verifica e está bem atento a isso.
A seguir, observe uma função sem erros de compilação e outra com erro de retorno.
Exemplo - Função com retorno compatível
Function typedFunc() as Numeric Local nVar := 10 as Numeric Return nVar
Exemplo - Função com retorno incompatível
Function typedFunc() as Numeric Local cVar := "I Love TLPP" Return cVar // ERRO DE COMPILAÇÃO (Função Numeric tentando retornar um Character)
E o compilador também vai olhar as chamadas de funções?
Sim, o compilador também vai ficar atento a isso.
Chamadas de funções declaradas no mesmo fonte passam pela checagem de tipos.
Exemplo - Função com retorno incompatível
Function typedFunc() as Numeric Local nVar := 10 as Numeric Return nVar Function typedTest() as Logical Local cVar := "I Love TLPP" as Character Local cResult as Character cResult := cVar + typedFunc() // ERRO DE COMPILAÇÃO (typedFunc é Numeric e, portanto, não pode ser somada a cVar, que é Character. Return .T.
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas