sexta-feira, 5 de fevereiro de 2010

Os tipos de dados simples - Tudo é um objeto

Primeiro, diferentemente de Java, para o Groovy tudo é objeto. O Groovy não tem tipos primitivos como o de Java, embora em alguns script você possa achar que eles exitem (...compliquei...rs.).
Vamos a um exemplo:
// Código Groovy
int numeroQueParecePrimitivo = 1
Integer numeroQueNaoParecePrimitivo = 2
Embora a declaração acima seja do tipo primitivo (int), o Groovy transforma isso por debaixo dos panos. No final, o Groovy vai considerar a variável numeroQueParecePrimitivo como do tipo Integer.
Segue uma explicação de como o Groovy trata os tipos que para Java são primitivos:

Tipo primitivo Tipo Groovy
byte java.lang.Byte
short java.lang.Short
int java.lang.Integer
long java.lang.Long
float java.lang.Float
double java.lang.Double
char java.lang.Character
boolean java.lang.Boolean

Isso simplifica muito as coisas. Essa conversão de tipos, é comumente chamada de boxing e a ação reversa unboxing. O Groovy executa essas operações automaticamente, tudo de forma transparente - isso, você não precisa fazer nada (bye bye casting).

Uma coisa importante a se notar é que, por se tratar de objetos, o Groovy utiliza os métodos existentes na API Java para efetuar cálculos.
def a = 1
def b = 2
int soma = a + b

// O Groovy entende assim:
Integer soma = a.plus(b)
Isso é válido para todas as operações de tipos primitivos do Java e seus métodos como plus(), minus(), div(), mod(), next(), previous() etc.

Nenhum comentário:

Postar um comentário

Seguidores