Histórico da Página
Incluir Página | ||||
---|---|---|---|---|
|
Sintaxe
VALTYPE( <expressão> )
Propósito
Determina o tipo de dado retornado por uma expressão.
Argumentos
<expressão>
Define uma expressão válida, de qualquer tipo, que resulta no dado a ser avaliado.
Utilização
Essa função fornece uma letra maiúscula identificando o tipo de dado resultante de uma expressão válida qualquer. 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 |
A função VALTYPE() pode ser utilizada como um teste para verificar o tipo de uma variável existente ou a validade de uma expressão.
A função VALTYPE() não atende ao propósito de verificar existência de uma variável, pois caso ela não exista a função retorna error.log "variable does not exist". Somente a funcão TYPE() retorna "U" caso a variável não esteja definida ou com conteúdo Nil
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 VALTYPE() for uma referência a um array, será fornecida a letra “A”. Todavia, se o argumento for um elemento de array, será fornecido o tipo de dado contido neste elemento.
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()
VALTYPE(cTexto) // Resulta “C”
VALTYPE(“AdvPL”) // Resulta “C”
VALTYPE(nValor) // Resulta “N”
VALTYPE(aMatriz) // Resulta “A”
VALTYPE(dData) // Resulta “D”
VALTYPE(DATE()) // Resulta “D”
VALTYPE(1 + 2 = 3) // Resulta “L”
VALTYPE(w) // Resulta “U” (Não definido)
VALTYPE(cTexto / nValor) // Resulta “U” (Dado caracter não pode ser dividido por um número)
VALTYPE(nValor / 2) // Resulta “N”, pois é uma expressão válida