Scala,如何遍历序列
我有一个Scala,如何遍历序列,scala,Scala,我有一个Seq[Object],我想遍历每个对象,检查它的一个布尔属性是否为true/false。我尝试使用flatmap后跟filter,但它不起作用: val systemResourcesExpandable = host.systemResources flatMap (.child) filter { childseq => for { child <- childseq; child.config flatMap (.cpuAlloca
Seq[Object]
,我想遍历每个对象,检查它的一个布尔属性是否为true/false。我尝试使用flatmap
后跟filter
,但它不起作用:
val systemResourcesExpandable = host.systemResources flatMap (.child) filter { childseq =>
for {
child <- childseq;
child.config flatMap (.cpuAllocation) flatMap (_.expandableReservation)
} yield { child }
}
val systemResourcesExpandable=host.systemResources平面图(.child)过滤器{childseq=>
对于{
child想象你有以下几点:
case class Stuff(p: Int, b: Boolean = false)
然后你创建了这些人的列表:
val x = List(Stuff(1), Stuff(2), Stuff(3, true))
现在,如果您想知道其中一个是否已将b
设置为true
,只需执行以下操作:
x.exists(_.b)
假设对象如下所示
case class MyObject(intProp: Int, boolProp: Boolean)
像这样的序列
val mySequence = Seq(obj1, obj2, obj3)
然后使用以下逻辑过滤掉boolProp上的假布尔条件
mySequence.filter(x => x.boolProp)
此操作仅返回boolProp为true的对象的新序列。请注意,这不会修改序列,而是返回一个新序列。val systemResourcesExpandable:Option[Seq[SystemResources.Child]=host.SystemResources平面图(uu.Child)过滤器{childseq=>
val systemResourcesExpandable : Option[Seq[SystemResources.Child]] = host.systemResources flatMap (_.child) filter { childseq =>
for{
child <- childseq;
expandablereservation <-child.config flatMap (_.cpuAllocation) flatMap (_.expandableReservation)
if (expandablereservation)
} yield {
child
}
}
为了{
孩子,你能发布你的代码片段,并解释到底是什么不起作用吗?@Ren你能看看这个并帮助不要发布新的问题作为答案。请更新你原来的问题。谢谢你的解释!!