2010-11-18 7 views
24

Ich habe Probleme, diesen Cast zu funktionieren.Wie tippst du Cast Char/Int in Scala?

Der Compiler sagt mir Wert aNumber ist kein Mitglied des Objekts Char

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

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

Was mache ich falsch?

Antwort

34

Sie werfen nicht. Mit (Char)aNumber Sie versuchen, eine Methode aNumber im Objekt Char aufzurufen:

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 
         ^

können Sie tun

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

oder als Nicolas vorgeschlagen Anruf toChar auf der Instanz Int:

scala> aNumber.toChar 
res1: Char = a 
17

Da alles ein Objekt in scala ist, sollten Sie aNumber.toChar verwenden.

+6

Ihre Erklärung ist irreführend. Man könnte meinen, dass toChar für jedes Objekt in Scala definiert ist. – NightRa