Kotlin平台类型和泛型

Kotlin平台类型和泛型,kotlin,Kotlin,我被困在最后一个任务28中,当我尝试调用我的partitionTo函数时,我会收到以下错误消息: Error:(25, 12) Kotlin: Type inference failed. Expected type mismatch: found: kotlin.Pair<kotlin.Collection<kotlin.String!>, kotlin.Collection<kotlin.String!>> required: kotlin.Pair<

我被困在最后一个任务28中,当我尝试调用我的partitionTo函数时,我会收到以下错误消息:

Error:(25, 12) Kotlin: Type inference failed. Expected type mismatch: found: kotlin.Pair<kotlin.Collection<kotlin.String!>, kotlin.Collection<kotlin.String!>> required: kotlin.Pair<kotlin.List<kotlin.String>, kotlin.List<kotlin.String>>
Error:(30, 12) Kotlin: Type inference failed. Expected type mismatch: found: kotlin.Pair<kotlin.Collection<kotlin.Char!>, kotlin.Collection<kotlin.Char!>> required: kotlin.Pair<kotlin.Set<kotlin.Char>, kotlin.Set<kotlin.Char>>

检查返回类型
partitionWordsAndLines():**Pair,List>**
,扩展需要
List
Set
,其中
partitionTo
返回
Collection

这是固定版本


inline fun Collection.partitionTo(第一个:C,第二个:C,谓词:(T)->布尔):Pair
问题是您承诺返回一对
列表
s:

fun List<String>.partitionWordsAndLines(): Pair<List<String>, List<String>> {
任务中的有用提示:

    The signature of the function 'toCollection()' from standard library may help you.
请看这里:


另外,为什么要在
partitionTo
上使用
inline
reified

不幸的是,在您的示例中,所有尖括号及其大部分内容都丢失了。你能把它们放回去或在其他地方共享相同的代码吗(例如,或)?我正在试验
内联
具体化
,这显然没有帮助:),但我仍然不确定为什么这不起作用
有趣的集合:Pair
当它工作时
fun Collection.partitionTo(first:C,second:C,predicate:(T)->Boolean):Pair
这两者之间有什么区别?@mellow,当您返回
C
时,类型推断将实参的类型指定给
C
,即实际结果是
Pair
,这是
Pair
的一个子类型。当你使用
MutableCollection
时,你得到的只是
MutableCollection
,因为它不是一个类型变量,类型推断也帮不了你,而且
MutableCollection
也不是
List
的子类型
inline fun <reified T> Collection<T>.partitionTo(...): Pair<Collection<T>, Collection<T>> {
    The signature of the function 'toCollection()' from standard library may help you.