2010-11-18 23 views
24

Tôi đang gặp sự cố khi dàn diễn viên này hoạt động.Làm thế nào để bạn gõ cast Char/Int trong Scala?

Trình biên dịch nói với tôi đánh giá cao aNumber chưa là thành viên của đối tượng Char

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

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

Tôi đang làm gì sai?

Trả lời

34

Bạn không truyền. Với (Char)aNumber bạn đang cố gắng để gọi một phương pháp aNumber trong đối tượng 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 
         ^

Bạn có thể làm

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

hoặc như Nicolas đề nghị gọi toChar trên dụ Int:

scala> aNumber.toChar 
res1: Char = a 
17

Vì mọi thứ đều là đối tượng trong scala, bạn nên sử dụng aNumber.toChar.

+6

của bạn giải thích là gây hiểu lầm. Người ta có thể nghĩ rằng toChar được định nghĩa trên bất kỳ đối tượng nào trong Scala. – NightRa

Các vấn đề liên quan