Kotlin 无法将lmapda参数上的reciver对象应用于高阶函数

Kotlin 无法将lmapda参数上的reciver对象应用于高阶函数,kotlin,Kotlin,在下面的代码中,我正在学习如何使用lampda函数和对象接收器以及不使用它们。使用函数max1,当impl1作为body block参数传递时,代码按预期工作。 但是,使用max2和impl2作为代码参数,我无法使用receiver对象样式/符号……是否有可能将lmpda函数上的receiver对象作为参数应用于高阶函数 eclipse生成的错误是: #unresolved reference error 请让我知道是否有可能在高阶函数的主体中使用接收器对象 代码: //lampda

在下面的代码中,我正在学习如何使用lampda函数和对象接收器以及不使用它们。使用函数max1,当impl1作为body block参数传递时,代码按预期工作。 但是,使用max2和impl2作为代码参数,我无法使用receiver对象样式/符号……是否有可能将lmpda函数上的receiver对象作为参数应用于高阶函数

eclipse生成的错误是:

#unresolved reference error
请让我知道是否有可能在高阶函数的主体中使用接收器对象

代码

    //lampda
    val impl1 : (String,String) -> Boolean =  {
        s1, s2 -> s1.length > s2.length
    }

    //lampda with a reciver object and scoping object
    val impl2 : String.(String) -> Boolean =  {
        s -> this.length > s.length
    }

    print(max1("1234", "12", impl1))
    print(max2("1234", "12", impl2))
}

fun max1 (s1: String, s2: String, c: (String, String) -> Boolean) : String {
    return "inside methods.....${ c(s1, s2) }" 
}

fun max2 (s1: String, s2: String, c: String.(String) -> Boolean) : String {
    return "inside methods ${ s1.impl2.s2 } "// #unresolved reference error
    return "inside methods ${ s1.c.s2 } "// #unresolved reference error
}

您必须使用接收方调用您的函数:

fun max2(s1: String, s2: String, c: String.(String) -> Boolean): String {
    return "inside methods ${s1.impl2(s2)} "//works
    return "inside methods ${s1.c(s2)} "//also works
}