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
Vous devez vous connecter pour publier un commentaire.
lorsque vous lancez un string en int, c'est ok, alors que vous avez un char en elle, nous pouvons donc dire que vous avez jeté un char, int, lorsque vous essayez de lancer l'int d'une chaîne de caractères, je pense qu'il utilise la méthode toString ou quelque chose comme ça. Essayez de lancer 36 char et vous verrez que votre '$'
Le "comme" mot-clé appelle la asType méthode interne qui je crois va alors essayer d'analyser la Chaîne comme un certain nombre, et $ n'est pas un nombre
OriginalL'auteur wiero