2014-10-07 51 views
5

在匹配案例中是否可以使用Scala案例對象?在匹配情況下是否可以使用Scala案例對象

E.g.這樣做工作:

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 – 2014-10-07 22:42:03

+0

您應該將此答案標記爲正確的答案! – pme 2018-02-22 07:54:12

+0

@pme你確定嗎?有一段時間沒有碰過斯卡拉 – matanster 2018-02-24 10:06:42

8

你需要指定B.type

object something { 
    val b = B 
    b match { case _:B.type => println("success") } 
} 
相關問題