我正在尝试掌握flatMap
Scala 中的实现。基于Scala编程中的定义
返回元素列表作为其正确参数的函数。它将函数应用于每个列表并返回所有函数结果的串联。
现在要理解这一点,我有以下实现
val listwords = List(List("abc"),List("def"),List("ghi"))
val res2 = listwords flatMap (_+"1")
println(res2) //output- List(L, i, s, t, (, a, b, c, ), 1, L, i, s, t, (, d, e, f, ), 1, L, i, s, t, (, g, h, i, ), 1)
val res3 = listwords flatMap (_.apply(0).toCharArray())
println(res3) //output- List(a, b, c, d, e, f, g, h, i)
看着让我发疯的第一个输出,为什么会List[List[String]]
被这样对待List[String]
?
毕竟有了上述问题的答案,请有人帮我执行一个操作,该操作需要选择每个内部的第一个字符串的第一个字符并产生一个List[Char]
. 因此,鉴于listwords
,我希望输出为List('a', 'd', 'g')
。