Объединить, чтобы сформировать список Scala - PullRequest
0 голосов
/ 26 июня 2018

Я хочу создать список класса 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 голосов
/ 26 июня 2018

Я не знаю, почему вы оборачиваете Seq в Option; Seq отлично подходит для случая без Person s. Есть ли разница между None и Some(Seq.empty[Person]) в вашем приложении?

Предполагая, что вы можете обойтись без Option[Seq[Person]]:

list.map(transform).toList
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...