La Conversion De Type En Groovy

J'ai deux questions.

J'ai fait le code suivant pour trouver la valeur ASCII de $ :

def a = "$"
def b = (int)a 
println b //prints 36

Eh bien, je suis content de la réponse. Mais quand j'ai essayé de le faire dans le sens inverse comme cela, j'ai constaté que je suis absent quelque chose :

def a = 36
String b = a
println b //getting output only 36 

Question 1:

Donc, ma première question est pourquoi il imprime 36 et pourquoi pas $? Je suis mal ici?

Eh bien, si même le premier bloc de code est re-écrite comme suit:

    def a = "$"
    def b = a as int
    println b

Si j'exécute ce programme, j'obtiens une erreur comme ceci :

Caught: java.lang.NumberFormatException: For input string: "$"
    at T.run(T.groovy:2)

Même si je suis en train de faire la même qu'avant. J'obtiens une erreur.

Question 2:

Alors pourquoi ne as mot-clé ne fonctionne pas ici et ne def a = (int)b est pas égal à à def a = b as int? M'expliquer.

Merci d'avance.

OriginalL'auteur Ant's | 2011-10-01