首页 > 解决方案 > 连接以形成列表 scala

问题描述

我想创建一个测试类列表。

 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

标签: scalalist

解决方案


我不知道你为什么将 a 包裹SeqOption; 很好地Seq代表了 no的情况。您的应用程序之间Person有区别吗?NoneSome(Seq.empty[Person])

假设您可以在没有Option[Seq[Person]]:

list.map(transform).toList

推荐阅读