我写了以下
val suspects =
tenCalls.foreach{f=>IllegalOddsCalcs.getOddsForMsisdnScala(f._2.toList)}
或者可以是这个
val suspects = for (f <- tenCalls)
(IllegalOddsCalcs.getOddsForMsisdnScala(f._2.toList))
当我运行上述内容时,可疑列表始终为空,因为我没有使用yield。如何使用上面的产量来填充嫌疑人,或者我应该使用别的东西?
答案 0 :(得分:3)
foreach
有状态并返回Unit
。您需要使用map
代替。或者,您可以在yield
for
val suspects = tenCalls.map(f=>...)
OR
val suspects = for(f <- tenCalls) yield {...}
答案 1 :(得分:-1)
我猜@Justin是对的。 &#34; foreach&#34;范例的定义如下:
scala.collection.generic.FilterMonadic
它的返回类型是&#34; Unit&#34; (或者说,&#34; void&#34;)。在您的情况下,您应该使用map:
abstract def map[B, That](f: (A) ⇒ B)(implicit bf: CanBuildFrom[Repr, B, That]): That