Histórico da Página
Incluir Página | ||||
---|---|---|---|---|
|
Sintaxe
TYPE( <expressão caracter> )
Propósito
Determina o tipo de dado de uma expressão.
Argumentos
<expressão caracter>
Define uma cadeia de caracteres que resulta no dado a ser avaliado. Pode incluir o nome de um campo de arquivo de dados (incluindo o alias), o nome de uma variável ou uma expressão de qualquer tipo.
Utilização
A função fornece uma letra maiúscula identificando o tipo de dado da expressão. Os tipos de dados possíveis, e as suas letras identificadoras, são relacionados na tabela abaixo:
Letra | Tipo de dado |
A | Array |
B | Bloco de Código |
C | Caracter |
D | Data |
L | Lógico |
M | Campo memo |
N | Numérico |
O | Objeto |
U | NIL, Local ou Estático |
UE | Erro de sintaxe |
UI | Erro indeterminado |
A função TYPE() pode ser utilizada como um teste para verificar a existência de uma variável ou a validade de uma expressão.
Dicas
A função VALTYPE() é equivalente à função TYPE(). Contudo, VALTYPE() é capaz de avaliar o tipo de dado contido em variáveis locais e estáticas, e o tipo de dado resultante de uma função de usuário, enquanto que a função TYPE() não.
Se o argumento da função TYPE() for uma referência a um array, será fornecida a letra “A”. Todavia, se o argumento for um elemento de um array, será fornecido o tipo de dado contido neste elemento.
A função TYPE() pode avaliar apenas o tipo de dado de parâmetros recebidos através do comando PARAMETERS. Se forem avaliados parâmetros recebidos através da sintaxe das funções, isto é, FUNCTION(<lista de parâmetros>), o valor fornecido será sempre “U”. Neste caso, deve-se utilizar a função VALTYPE().
Por isso, recomenda-se sempre o uso da função VALTYPE(), ao invés da função TYPE().
Exemplos
PRIVATE aMatriz[10]
LOCAL cTexto := “AdvPL”
LOCAL nValor := 1000
LOCAL dData := DATE()
TYPE(“cTexto”) // Resulta “C”
TYPE(“AdvPL”) // Resulta “C”
TYPE(“nValor”) // Resulta “N”
TYPE(“aMatriz”) // Resulta “A”
TYPE(“dData”) // Resulta “D”
TYPE(“DATE()”) // Resulta “D”
TYPE(“1 + 2 = 3”) // Resulta “L”
TYPE(“w”) // Resulta “U” (Não definido)
TYPE(“cTexto / nValor”) // Resulta “U” (Dado caracter não pode ser dividido por um número)
TYPE(“nValor / 2”) // Resulta “N”, pois é uma expressão válida
TYPE(“SUBSTR(4,5)”) // Resulta “UE” (Erro de Sintaxe)