blob: 84e346ec79d141cc6c7454d491be4a02dae05d6b (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
object Test {
sealed class A
case object B extends A
case class C(x: Int) extends A
def f[T](x: Option[T]) = x.fold(List.empty[T])(List(_))
def g(x: Option[A]) = x.fold(-1) {
case B => 0
case C(x) => x
case _ => ???
}
def main(args: Array[String]): Unit = {
println(f(None)) //List()
println(f(Some(5))) //List(5)
println(g(None)) //-1
println(g(Some(B))) //0
println(g(Some(C(1)))) //1
}
}
|