Erro estranho em groovy
20/02/2015 13:49
0
Olá pessoal.

Tenho um switch em uma classe que faz comparação com um inteiro, porém, apenas para padronizar a visualização dos códigos, utilizo 3 digitos. Agora que são elas.


Integer a = 001

switch (a){
case 001: println "A é igual: $a"; break
case 002: println "A é igual: $a"; break
case 003: println "A é igual: $a"; break
case 004: println "A é igual: $a"; break
case 005: println "A é igual: $a"; break
case 006: println "A é igual: $a"; break
case 007: println "A é igual: $a"; break
case 008: println "A é igual: $a"; break
case 009: println "A é igual: $a"; break
case 010: println "A é igual: $a"; break
}

Por que ocorre o erro apenas para os números 008 e 009?
Se comentarmos esses 2, ele compila normalmente.

Fiz este teste no groovyconsole.
Assim também apresenta o erro:

def a = 008
println a.class
Tags: switch Integer error


0
O groovy ta interpretando seus números em base 8 (Octal literal) para a sua sequência dar certo altere para:

case 010: println "A é igual: $a"; break // 8
case 011: println "A é igual: $a"; break // 9
case 012: println "A é igual: $a"; break // 10

font: http://docs.groovy-lang.org/docs/groovy-2.4.0/html/documentation/#_octal_literal
20/02/2015 14:27


0
Muito obrigado.
20/02/2015 15:23



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto