2010-11-18 62 views
24

我有問題讓演員工作。如何在Scala中輸入Char/Int?

編譯器告訴我看重aNumber不是對象Char

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

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

我在做什麼錯的一員?

回答

34

您未投射。隨着(Char)aNumber你想在對象字符調用方法aNumber

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 
         ^

你可以做

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

或薩科建議在詮釋實例調用toChar

scala> aNumber.toChar 
res1: Char = a 
17

因爲一切都是scala中的對象,所以應該使用aNumber.toChar

+6

你解釋是誤導。有人可能會認爲toChar是在Scala中的任何對象上定義的。 – NightRa 2014-02-24 17:34:01