Kotlin flatMapTo不编译

Kotlin flatMapTo不编译,kotlin,Kotlin,我想将集合平面映射到单个集合。我有以下代码,它不是用IntelliJ IDEA编译的。我不知道为什么: listOf(HashSet<String>()).flatMapTo(HashSet<String>()) { it.iterator() as Iterator<String> } listOf(HashSet()).flatMapTo(HashSet()){it.iterator()作为迭代器} lambda上最后有一条非常混乱的错误消息,上面说:

我想将集合平面映射到单个集合。我有以下代码,它不是用IntelliJ IDEA编译的。我不知道为什么:

listOf(HashSet<String>()).flatMapTo(HashSet<String>()) { it.iterator() as Iterator<String> }
listOf(HashSet()).flatMapTo(HashSet()){it.iterator()作为迭代器}
lambda上最后有一条非常混乱的错误消息,上面说:

类型不匹配。必需:(kotlin.collections.HashSet/*= java.util.HashSet/)→ 我们发现: (kotlin.collections.HashSet/=java.util.HashSet*/) → 迭代器

但它们都是完全一样的吗?我不明白为什么这不管用

flatMapTo
功能上也会显示一条错误消息,并显示:

类型推断失败:

inline fun Iterable.flatMapTo( 目的地:C,变换:(T)→ Iterable):无法应用C 到

接收者:列出参数:( kotlin.collections.HashSet/*=java.util.HashSet&ast;/, (kotlin.collections.HashSet/*=java.util.HashSet&ast;/) → 迭代器)


*希望我没有忘记引号中的任何特殊字符。必须用html实体替换您的lambda返回一个
迭代器。它应该返回一个
Iterable
Set
已经是一个
Iterable

你所需要的只是

listOf(HashSet<String>()).flatMapTo(HashSet()) { it }
listOf(HashSet()).flatMapTo(HashSet()){it}