Capítulo 05.
Introdução para variáveis

Nomes Válidos

Os nomes das variáveis precisam começar com uma letra ou um sobrescrito e podem ter até 128 letras, dígitos, sobrescritos, ou sinais de dólar. O tamanho das variáveis (irá depender do tipo) é limitado pelo computador e o sistema operacional que você está utilizando, e não pelo IDL. Os nomes de variáveis são únicos. O IDL converte todos os caracteres alfabéticos para maiúsculo internamente.

 

Tipos de Variáveis

Existem 16 tipos de variáveis no IDL, sete inteiras, duas flutuantes, duas complexas, uma do tipo texto, dois do tipo abstrato (objetos e ponteiros), e indefinido. As estruturas são consideradas seu próprio tipo, enquanto as matrizes são do mesmo tipo dos seus elementos.

Tipo
Tamanho (bits)
Criação por Escala
Função de Conversão
byte
8
a = 5B
BYTE
integer
16
b = 0S ; b = 0
FIX
unsigned integer
16
c = 0U
UINT
long integer
32
d = 0L
LONG
unsigned long integer
32
e = 0UL
ULONG
64-bit integer
64
f = 0LL
LONG64
unsigned 64-bit integer
64
g = 0ULL
ULONG64
float
32
h = 0.0
FLOAT
double
64
i = 0.0D
DOUBLE
complex
64
j = complex(1.0, 0.0)
COMPLEX
double complex
128
k = dcomplex(1.0, 0.0)
DCOMPLEX
string
 
l = ‘hello’
STRING/
   
l = "hello"
STRTRIM
pointer
32
m = ptr_new()
 
object
32
n = obj_new()
 
undefined
8
   
structure
     

 

Criação de Variáveis

No IDL as variáveis não precisam ser declaradas. O tipo das variáveis é determinado após o uso. Antes da criação, uma variável é do tipo undefined; não é permitido você utilizar uma variável undefined em uma expressão.

IDL> help, var
          VAR    UNDEFINED = <Undefined>
IDL> var = 0L
IDL> help, var
          VAR    LONG = 0

Existe três formas de criar uma variável de forma que não seja undefined, são elas: Escalar, Matricial (ou Vetorial) e por Estruturas.

 

Escalar

As variáveis escalares são inicializadas de forma que a variável seja de valor escalar (ou seja apenas um valor). Use a idéia passada na tabela acima na coluna "Criação por Escala" para criar um tipo de variável específica. Por exemplo:

IDL> image_pixel = 0B                   ; byte
IDL> loopcounter = 0U                   ; uint
IDL> n_elms = 0L                        ; long
IDL> fileoffset = 0ULL                  ; ulong64
IDL> variance = 0.0                     ; float
IDL> total = 0.0D                       ; double
IDL> complex_var = complex(0.0 , 0.0)   ; complex
IDL> name = 'Hello World'               ; string
IDL> new_image_pixel = image_pixel      ; byte
IDL> pixel_value = image_pixel + 0.0    ; byte + float = float

O nome da variável do lado esquerdo do sinal de igual absorverá o tipo do valor, variável, ou expressão do lado direito do sinal.