2010-11-18 9 views
24

このキャストを動作させる際に問題が発生しています。どのようにスカラにChar/Intをキャストしますか?

コンパイラは値aNumberChar

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

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

オブジェクトのメンバではありません、私は間違って何をやっている私に語りましたか?

答えて

34

キャストしていません。 (Char)aNumberを使用すると、オブジェクトのChar方法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 

やニコラスがintインスタンス上で呼び出しtoCharを示唆して行うことができます。

scala> aNumber.toChar 
res1: Char = a 
17

すべてがスカラのObjectであるため、aNumber.toCharを使用してください。

+6

あなたを説明は誤解を招く。 toCharはScalaのどのオブジェクトでも定義されていると考えるかもしれません。 – NightRa

関連する問題