连接到表单列表scala

时间:2018-06-26 16:07:23

标签: scala list

我想创建一个Test类的列表。

 case class Person(name:String)

   case class Test (desc:String)

   val list =Seq(Person("abc"),Person("def"))
    val s = Option(list)
    private val elems = scala.collection.mutable.ArrayBuffer[Test]()
    val f =for{
      l<-s
    }yield {
      for{
        e <-l
      } yield elems+=tranform(e)

    }
    f.toSeq

    def tranform(p:Person):Test= {
    Test(desc = "Hello "+p.name)
    }

任何人都可以帮助以下问题

  1. 避免多个for的更好方法
  2. 我想获取List(Test(“ Hello abc”),Test(“ Hello def”))而不是使用ArrayBuffer

1 个答案:

答案 0 :(得分:1)

我不知道您为什么将Seq包裹在Option中; Seq非常好地表示没有Person的情况。您的应用程序中的NoneSome(Seq.empty[Person])之间有区别吗?

假设没有Option[Seq[Person]],您就可以渡过难关:

list.map(transform).toList