0
我一直在試圖想出一個函數來檢查參數是否爲運行時給出的類型。檢查arg1是否爲arg2實例的函數,如Scala中的isInstanceOf(a,A)
考慮功能is
(以下簡稱「是類」),在下面的例子:
object TestClass {
abstract class P()
case class A() extends P
case class B() extends P
// ...
case class Z() extends P
def is[VALUE,TYPE](value:VALUE, T:TYPE): Boolean = {
value match {
case T => true
case _ => false
}
}
def main(args: Array[String]) {
val a = new A()
val b = new B()
println(a.isInstanceOf[A]) // true
println(is(a, A)) // false
println(is(b, B)) // false
}
}
我讀過有關ClassTag和的getClass,但我是新來的Scala和不能正確地應用它們,它似乎。 is
應該如何實現全部println
-lines返回true
?
很好地工作,謝謝你的解釋! – sao 2014-12-02 15:53:15