why does filter have to be defined for pattern matching in a for loop in scala?

后端 未结 2 885
天涯浪人
天涯浪人 2020-12-05 08:17

To create a new class that can be used in a Scala for comprehension, it seems that all you have to do is define a map function:

scala> class C[T](items: T         


        
2条回答
  •  眼角桃花
    2020-12-05 08:26

    See the difference:

    scala> for ((k, v) <- List(1 -> 2, 3 -> 4, 5)) yield k -> v
    res22: List[(Any, Any)] = List((1,2), (3,4))
    
    scala> List(1 -> 2, 3 -> 4, 5).map{case (k, v) => k -> v}
    scala.MatchError: 5
    

提交回复
热议问题