Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Section

A linguagem TL++ 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

Indicador

Valor padrão

atribuído

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

0

N

integer

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

ele

este tipo.

Local iInt1 as integer

Local iInt2 := 7 as integer

0
(zero)

N

0

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

0

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

0

character

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

Local

nVal1

cStr1 as character

Local

nVal2

cStr2 := "TotvsTec" as character

""
(caracter vazio)

C

""

C

logical

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

Local

nVal1

lBol1 as logical

Local

nVal2

lBol2 := .T. as logical

L

.F.
(falso)

L

L

date

Utilize para armazenar datas

Local

nVal1

dDte1 as

numeric

date

Local nVal2

Local dDte2 :=

4 as numericD

 CToD("08/29/2021") as date

31/12/1899

D

D

array

Use para armazenar uma matriz n-dimensional de valores

Local

nVal1

aArr1 as

numeric

array

Local

nVal2 := 4 as numeric

A

{ }

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

Nil

U

A

object

Use para se referir a objetos de interface ou classes

Local

nVal1

oObj1 as object

Local

nVal2

oObj2 :=

4 as object

MyClass():New() as object

Nil

U

O

Nil

json

Use para criar um objeto json

Local

nVal1

jJsn1 as json

J

{ }

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

Nil

U

J

codeblock

Use para declarar que é um bloco de código

Local

nVal1

bBlk1 as codeblock

B

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

nVal1

xVar1 as variant

Local

nVal2

xVar2 := 4 as variant

Local xVar3 := "Texto" as variant

Nil

U

Nil
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.

H


U

J

"sem tipo definido"

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

Local nVar1

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