2010-11-18 5 views
24

Je rencontre des problèmes pour faire fonctionner cette distribution.Comment tapez cast Char/Int dans Scala?

Le compilateur me dit aNumber n'est pas apprécie un membre de l'objet Char

def runCastTest() { 
    val aNumber = 97 
    val aChar = (Char)aNumber 

    println(aChar) // Should be 'a' 
} 

Qu'est-ce que je fais mal?

Répondre

34

Vous n'êtes pas en train de diffuser. Avec (Char)aNumber vous essayez d'appeler une méthode aNumber dans l'objet Char:

scala> val aNumber = 97 
aNumber: Int = 97 

scala> val aChar = (Char)aNumber 
<console>:5: error: value aNumber is not a member of object Char 
     val aChar = (Char)aNumber 
         ^

Vous pouvez faire

scala> aNumber.asInstanceOf[Char] 
res0: Char = a 

ou Nicolas suggéré appel toChar sur l'instance Int:

scala> aNumber.toChar 
res1: Char = a 
17

Comme tout est un objet dans scala, vous devez utiliser aNumber.toChar.

+6

Votre L'explication est trompeuse. On pourrait penser que toChar est défini sur n'importe quel objet dans Scala. – NightRa