使用 yield 展平语法 - 提高代码可读性
Flatten syntax with yield - improving code readability
我正在努力提高我的代码的可读性,但我很难处理这个小块。
Foo 是一个接受列表的方法[Ping]
Thing.generatereturns一个列表[Ping]
ListOfPings 是一个列表[Ping]
hasQuality returns 评估 Ping 的布尔值
代码如下:
foo((for {
pinger <- listOfPings
} yield pinger.generate.filter(_.hasQuality)).flatten)
listOfPingss 中的每个 Ping 都使用 generate 方法创建一个 List[Thing],这意味着循环结束时 yield 的结果是一个 List[List[Ping]]。
我正在展平 List[List[Ping]](不是单个列表),并将整个结果放入 foo
我无法使它看起来更好看,可能是平面图?非常感谢您的帮助。
类似于:
foo {
for (p <- listOfPings ; q <- p.generate if q.hasQuality) yield q
}
我正在努力提高我的代码的可读性,但我很难处理这个小块。
Foo 是一个接受列表的方法[Ping]
Thing.generatereturns一个列表[Ping]
ListOfPings 是一个列表[Ping]
hasQuality returns 评估 Ping 的布尔值
代码如下:
foo((for {
pinger <- listOfPings
} yield pinger.generate.filter(_.hasQuality)).flatten)
listOfPingss 中的每个 Ping 都使用 generate 方法创建一个 List[Thing],这意味着循环结束时 yield 的结果是一个 List[List[Ping]]。
我正在展平 List[List[Ping]](不是单个列表),并将整个结果放入 foo
我无法使它看起来更好看,可能是平面图?非常感谢您的帮助。
类似于:
foo {
for (p <- listOfPings ; q <- p.generate if q.hasQuality) yield q
}