Descrições de tipos de dados



Os tipos nativos primitivos incluem Boolean, int, Null, Number, String, uint e void. As classes base do ActionScript também definem os seguintes tipos de dados complexos: Object, Array, Date, Error, Function, RegExp, XML e XMLList.

Tipo de dados Boolean

O tipo de dados Boolean compreende dois valores: true e false. Nenhum outro valor é válido para variáveis do tipo Boolean. O valor padrão de uma variável Boolean que foi declarada mas não inicializada é false.

Tipo de dados int

O tipo de dados int é armazenado internamente como um inteiro de 32 bits e compreende o conjunto de inteiros de

-2.147.483.648 (-231) a 2.147.483.647 (231 - 1), inclusive. As versões anteriores do ActionScript ofereciam apenas o tipo de dados Number, que era usado para números inteiros e de ponto flutuante. No ActionScript 3.0, agora você tem acesso a tipos de computador de nível baixo para inteiros de 32 bits assinados e não assinados. Se a sua variável não tiver números de ponto flutuante, o uso do tipo de dados int em vez do tipo de dados Number deverá ser mais rápido e eficiente.

Para valores inteiros fora do intervalo dos valores int mínimo e máximo, use o tipo de dados Number, que pode manipular valores entre positivo e negativo 9.007.199.254.740.992 (valores inteiros de 53 bits). O valor padrão para variáveis do tipo de dados int é 0.

Tipo de dados Null

O tipo de dados Null contém apenas um valor, null. É o valor padrão para o tipo de dados String e todas as classes que definem tipos de dados complexos, inclusive a classe Object. Nenhum outro tipo de dados primitivo, como Boolean, Number, int e uint, contém o valor null. O Flash Player e o Adobe AIR converterão o valor null no valor padrão apropriado se você tentar atribuir null a variáveis do tipo Boolean, Number, int ou uint. Você não pode usar esse tipo de dados como uma anotação de tipo.

Tipo de dados Number

No ActionScript 3.0, o tipo de dados Number pode representar inteiros, inteiros não assinados e números de ponto flutuante. Entretanto, para maximizar o desempenho, você deve usar o tipo de dados Number somente para valores inteiros maiores do que os tipos int e uintde 32 bits podem armazenar ou para números de ponto flutuante. Para armazenar um número de ponto flutuante, inclua um ponto decimal no número. Se você omitir um ponto decimal, o número será armazenado como um inteiro.

O tipo de dados Number usa o formato de precisão dupla de 64 bits conforme especificado pelo Padrão IEEE para Aritmética de Ponto Flutuante Binário (IEEE-754). Esse padrão determina como os números de ponto flutuante são armazenados usando os 64 bits disponíveis. Um bit é usado para designar se o número é positivo ou negativo. Onze bits são usados para o expoente, que é armazenado como base 2. Os 52 bits restantes são usados para armazenar o significando (também chamado de mantissa), que é o número elevado à potência indicada pelo expoente.

Com o uso de alguns bits para armazenar um expoente, o tipo de dados Number pode armazenar números de ponto flutuante significativamente maiores do que se usasse todos os bits para o significando. Por exemplo, se o tipo de dados Number usasse os 64 bits para armazenar o significando, ele armazenaria um número tão grande quanto 265 - 1. Com o uso de 11 bits para armazenar um expoente, o tipo de dados Number pode elevar seu significando à potência de 21023.

Os valores máximo e mínimo que o tipo Number pode representar são armazenados em propriedades estáticas da classe Number chamadas Number.MAX_VALUE e Number.MIN_VALUE.

Number.MAX_VALUE == 1.79769313486231e+308 
Number.MIN_VALUE == 4.940656458412467e-324

Embora esse intervalo de números seja enorme, seu custo é a precisão. O tipo de dados Number usa 52 bits para armazenar o significando, por isso os números que exigem mais de 52 bits para fazer uma representação precisa, como a fração 1/3, são apenas aproximações. Se o seu aplicativo exibir precisão absoluta com números decimais, será necessário usar um software que implemente a aritmética de ponto flutuante decimal em vez da aritmética de ponto flutuante binário.

Durante o armazenamento de valore inteiros com o tipo de dados Number, somente os 52 bits do significando são usados. O tipo de dados Number usa esses 52 bits e um bit oculto especial para representar inteiros de -9.007.199.254.740.992 (-253) a 9.007.199.254.740.992 (253).

O Flash Player e o Adobe AIR usam o valor NaN não apenas como o valor padrão para variáveis do tipo Number, mas também como resultado de qualquer operação que deve retornar um número e não retorna. Por exemplo, se você tentar calcular a raiz quadrada de um número negativo, o resultado será NaN. Outros valores Number especiais incluem infinito positivo e infinito negativo.

Nota: O resultado da divisão por 0 será apenas NaN se o divisor também for 0. A divisão por 0 produz infinity quando o dividendo é positivo ou -infinity quando o dividendo é negativo.

Tipo de dados String

O tipo de dados String representa uma seqüência de caracteres de 16 bits. Os Strings são armazenados internamente como caracteres Unicode, usando o formato UTF-16, Eles são valores imutáveis, assim como na linguagem de programação Java. Uma operação sobre um valor String retorna uma nova ocorrência da seqüência de caracteres. O valor padrão para uma variável declarada com o tipo de dados String é null. O valor null não é o mesmo que a seqüência de caracteres vazia (""), muito embora ambos representem a ausência de caracteres.

Tipo de dados uint

O tipo de dados int é armazenado internamente como um inteiro não assinado de 32 bits e compreende o conjunto de inteiros de 0 a 4.294.967.295 (232 - 1), inclusive. Use o tipo de dados uint para circunstâncias especiais que exigem inteiros não negativos. Por exemplo, você deve usar o tipo de dados uint para representar os valores de cor de pixel, porque o tipo de dados int tem um bit de sinal interno que não é apropriado para manipular valores de cor. Para valores inteiros maiores do que o valor uint máximo, use o tipo de dados Number, que pode manipular valores inteiros de 53 bits. O valor padrão para variáveis do tipo de dados uint é 0.

Tipo de dados void

O tipo de dados void contém apenas um valor, undefined. Nas versões anteriores do ActionScript, undefined era o valor padrão para ocorrências da classe Object. No ActionScript 3.0, o valor padrão para ocorrências de Object é null. Se você tentar atribuir um valor undefined a uma ocorrência da classe Object, o Flash Player ou o Adobe AIR converterão o valor em null. É possível atribuir apenas um valor de undefined a variáveis sem tipo. Variáveis sem tipo são aquelas que não possuem nenhuma anotação de tipo ou usam o símbolo asterisco (*) para a anotação de tipo. Você pode usar void apenas como uma anotação de tipo de retorno.

Tipo de dados Object

O tipo de dados Object é definido pela classe Object. A classe Object serve de classe base para todas as definições de classe no ActionScript. A versão do ActionScript 3.0 do tipo de dados Object difere das versões anteriores de três formas. Primeiro, o tipo de dados Object não é mais o tipo de dados padrão atribuído a variáveis sem nenhuma anotação de tipo. Em segundo lugar, o tipo de dados Object não inclui mais o valor undefined, que costumava ser o valor padrão das ocorrências Object. Em terceiro lugar, no ActionScript 3.0, o valor padrão para ocorrências da classe Object é null.

Nas versões anteriores do ActionScript, uma variável sem nenhuma anotação de tipo era automaticamente atribuída ao tipo de dados Object. Isso não acontece mais no ActionScript 3.0, que agora inclui a idéia de uma variável realmente sem tipo. As variáveis sem nenhuma anotação de tipo agora são consideradas sem tipo. Se preferir deixar mais claro para os leitores do código que sua intenção é deixar uma variável sem tipo, você pode usar o novo símbolo de asterisco (*) para a anotação de tipo, que é equivalente a omitir uma anotação de tipo. O exemplo a seguir mostra duas instruções equivalentes, que declaram uma variável sem tipo x:

var x 
var x:*

Somente variáveis sem tipo podem manter o valor undefined. Se você tentar atribuir o valor undefined a uma variável que possui um tipo de dados, o Flash Player ou o Adobe AIR converterão o valor undefined no valor padrão desse tipo de dados. Para ocorrências do tipo de dados Object, o valor padrão é null, o que significa que o Flash Player ou o Adobe AIR converterão o valor undefined em null se você tentar atribuir undefined a uma ocorrência de Object.