Why doesn't Option have a fold method?

后端 未结 4 2233
甜味超标
甜味超标 2020-12-14 00:56

I wonder why scala.Option doesn\'t have a method fold like this defined:

fold(ifSome: A => B , ifNone: => B)
<
4条回答
  •  执笔经年
    2020-12-14 01:32

    I personally find methods like cata that take two closures as arguments are often overdoing it. Do you really gain in readability over map + getOrElse? Think of a newcomer to your code: What will they make of

    opt cata { x => x + 1, 0 }
    

    Do you really think this is clearer than

    opt map { x => x + 1 } getOrElse 0
    

    In fact I would argue that neither is preferable over the good old

    opt match {
      case Some(x) => x + 1
      case None => 0
    }
    

    As always, there's a limit where additional abstraction does not give you benefits and turns counter-productive.

提交回复
热议问题