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