scala中的flatMap函数

问题描述 投票:0回答:1

在以下两种情况下,我在列表上调用了flatMap函数。在这两种情况下,flatMap函数的map部分都会返回一个具有迭代器的数组。在第一种情况下,代码会出错,而在第二种情况下,它将产生预期的结果。

场景1

val x = List("abc","cde")
x flatMap ( e => e.toArray)
<console>:13: error: polymorphic expression cannot be instantiated to expected type;
 found   : [B >: Char]Array[B]
 required: scala.collection.GenTraversableOnce[?]
       x flatMap ( e => e.toArray)

场景2

val x = List("abc,def")
x flatMap ( e => e.split(",") )
res1: List[String] = List(abc, def) //Result

您能帮忙为什么在第一种情况下表现不如预期吗?

scala flatmap
1个回答
0
投票

如错误所述,您的类型是错误的。在检查API时,我们注意到您需要GenTraversableOnce作为flatMap的输入。 ArrayNOT一个GenTraversableOnce,因此您无法为其应用flatMap

© www.soinside.com 2019 - 2024. All rights reserved.