2014-10-07 5 views
5

में स्कैला केस ऑब्जेक्ट का उपयोग किया जा सकता है क्या एक केस केस में स्कैला केस ऑब्जेक्ट का उपयोग किया जा सकता है?एक केस केस

उदा। यह करता है नहीं काम:

abstract class A 
case object B extends A 

object something { 
    val b = B 
    b match { case _:B => println("success") } 
} 

not found: type B 
b match { case _:B => println("success") } 
       ^

उत्तर

4

ओह, लगता है कि यह भी संकलित:

abstract class A 
case object B extends A 

object something { 
    val b = B 
    b match { case B => println("success") } 
} 

स्काला फिडल: Can a Scala case object be used in a match case

+2

देखें यहां अंतर https://issues.scala-lang.org/browse/SI-4 577 –

+0

आपको इस उत्तर को सही के रूप में चिह्नित करना चाहिए! – pme

+0

@pme क्या आप वाकई हैं? थोड़ी देर में स्कैला को छुआ नहीं है – matanster

8

आप B.type निर्दिष्ट करना होगा:

object something { 
    val b = B 
    b match { case _:B.type => println("success") } 
} 
संबंधित मुद्दे