scala - 连接以形成列表 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)
}
谁能帮忙解决以下问题
- 避免多重的更好方法
for
- 我想获取 List(Test("Hello abc"),Test("Hello def")) 而不是使用 ArrayBuffer
解决方案
我不知道你为什么将 a 包裹Seq
在Option
; 很好地Seq
代表了 no的情况。您的应用程序之间Person
有区别吗?None
Some(Seq.empty[Person])
假设您可以在没有Option[Seq[Person]]
:
list.map(transform).toList
推荐阅读
- javascript - jquery如何从文本框中获取值
- xml - 隐藏自定义(/)页面的标题odoo v12
- android - 向不同客户发布/推出同一应用程序的不同版本/定制的选项?
- c++ - Boost intrusive list 中有很多编译错误
- r - 分析 R 中的数据,我想将图表导出到 powerpoint
- mono - 如何结合 Mono 和 Flux 作为参数来创建新的 Mono?
- google-chrome - 如何在 Chrome 74+ 中禁用 CORB
- php - 如何将两个 svg 动画放在一列中?
- r - 有没有可以用权重聚类的算法?
- react-native - 如何修改 SafeAreaView 中的填充?