有条件地添加到列表的最佳方法scala

时间:2015-10-16 07:12:51

标签: scala functional-programming

我需要创建一个序列,其中有条件地添加元素但不能使用for -> yield,因为必须在迭代完成之前执行某个清理任务。例如,请考虑以下代码段。

sequence.flatMap( msg => {
        val (_, value) = msg
        val returnVal = BaseData(value) match {
          case Some(baseData) =>
            //some processing
            //will return some value here
            Seq("")
          case None => //Do nothing skip this
            Nil //Don't want to add anything here.
        }
        if(!sequence.hasNext){
          //cleanup
        }
        returnVal
      }

然而,考虑到我必须每次为单个对象创建一个序列,这似乎非常难看。是否有更好的功能性方法来实现这一目标。我的输出总是必须在我的示例中返回Seq[R] R=String

0 个答案:

没有答案