你如何在Scala中输入Cast/Int?

Can*_*rsa 27 casting scala

我有问题让这个演员工作.

编译器告诉我value aNumber不是object的成员Char

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

  println(aChar) // Should be 'a'  
}
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

fed*_*lva 40

你不是在施法.在(Char)aNumber您尝试调用aNumber对象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
                          ^
Run Code Online (Sandbox Code Playgroud)

你可以做

scala> aNumber.asInstanceOf[Char]
res0: Char = a
Run Code Online (Sandbox Code Playgroud)

或者作为Nicolas建议调用toCharInt实例:

scala> aNumber.toChar
res1: Char = a
Run Code Online (Sandbox Code Playgroud)


Nic*_*las 19

因为scala中的所有东西都是对象,所以你应该使用它aNumber.toChar.

  • 你的解释是误导性的.有人可能认为toChar是在Scala中的任何对象上定义的. (8认同)