Árvore de páginas

A linguagem TLPP já disponibiliza vários tipos nativos, que podem ser utilizados na declaração de variáveis, propriedades de classes, funções, métodos e parâmetros.
O nome do tipo, sua descrição e o seu caractere indicador estão relacionados abaixo.


Tipo

Descrição

Valor padrão na inicialização sem atribuir

Tipo na inicialização
(VALTYPE)

Tipo após inicializado
(VALTYPE)

numeric

Use para valores numéricos de ponto flutuante, positivos ou negativos. Este é o tipo numérico padrão do Protheus, continue usando ele para os seus programas de cálculos para precisam fazer ajuste de precisão.

Local nNum1 as numeric

Local nNum2 := 3 as numeric

0
(zero)

N

N

integer

Use para valores numéricos inteiros, positivos ou negativos. Vai fazer um "for" ou criar um contador sequencial ... use este tipo.

Local iInt1 as integer

Local iInt2 := 7 as integer

0
(zero)

N

N

double

Use para valores numéricos de ponto flutuante, positivos ou negativos.

Local eDbl1 as double

Local eDbl2 := 32.79 as double

0
(zero)

N

N

decimal

Use para valores numéricos de alta precisão, essenciais para tratamentos monetários.  (DEC_CREATE)

Local fDec1 as decimal
Local fDec2 := DEC_CREATE( 7233.759119, 21, 20 ) as Decimal

Nil

U

F

character

Use para valores textuais (alfanuméricos, pontuação, especiais, ...)

Local cStr1 as character

Local cStr2 := "TotvsTec" as character

""
(caracter vazio)

C

C

logical

Utilizado para valores lógicos, verdadeiro (.T.) ou falso (.F.)

Local lBol1 as logical

Local lBol2 := .T. as logical

.F.
(falso)

L

L

date

Utilize para armazenar datas

Local dDte1 as date

Local dDte2 := CToD("08/29/2021") as date

31/12/1899

D

D

array

Use para armazenar uma matriz n-dimensional de valores

Local aArr1 as array

Local aArr2 := {1, 2, 3} as array

Nil

U

A

object

Use para se referir a objetos de interface ou classes

Local oObj1 as object

Local oObj2 := MyClass():New() as object

Nil

U

O

json

Use para criar um objeto json

Local jJsn1 as json

Local jJsn2 := JsonObject():New() as Json

Nil

U

J

codeblock

Use para declarar que é um bloco de código

Local bBlk1 as codeblock

Local bBlk2 := {|r,l|r*l} as CodeBlock

Nil

U

B

variant

Utilizado para dizer que é um tipo variante e auto polimórfico, podendo assumir qualquer dos tipos disponíveis

Local xVar1 as variant

Local xVar2 := 4 as variant

Local xVar3 := "Texto" as variant

Nil

U

Conforme o tipo atribuído

variadic

Utilizado na declaração de funções para indicar passagem de parâmetros com quantidade variável.
Não pode ser usado para instanciar uma variável.


U

J

"sem tipo definido"

Se não for declarado nenhum dos tipos, a variável será tratada como "variant"

Local xVar1

Local xVar2 := .T.

Local xVar3 := Date()

NilUConforme o tipo atribuído


Obs. Em TLPP, as variáveis de tipo numeric, character e date não devem ser comparados com Nil. Segue um exemplo:

Local nNum as numeric

If (nNum == Nil)

...

EndIf


No exemplo acima ocorre erro de compilação, pois a variável nNum é igual a 'N' e já tem o valor default 0 (zero). Caso precise fazer esta comparação com Nil, o tipo de nNum deve ser modificado para Variant.


Veja também:

VALTYPE

DEC_CREATE

  • Sem rótulos