Kotlin “Lambda表达式”;不是";谓语

Kotlin “Lambda表达式”;不是";谓语,kotlin,lambda,predicate,Kotlin,Lambda,Predicate,我目前正在学习Kotlin并有望成为一名开发人员,但我遇到了一个问题,无法找到答案(即使在进行了大量的谷歌研究之后) 如果有人能帮助我并解释他们的解决方案,我将不胜感激。:) 提前谢谢你 问题: “编写一个谓词,该谓词接受originalPredicate:(Char)->布尔变量并返回求反的结果。您的谓词将筛选字符串。” 实施: val notPredicate:(Char)->Boolean=TODO(“提供实现”)您的意思是: val originalPred :(Char) ->

我目前正在学习Kotlin并有望成为一名开发人员,但我遇到了一个问题,无法找到答案(即使在进行了大量的谷歌研究之后)

如果有人能帮助我并解释他们的解决方案,我将不胜感激。:)

提前谢谢你

问题:

“编写一个谓词,该谓词接受originalPredicate:(Char)->布尔变量并返回求反的结果。您的谓词将筛选字符串。”

实施: val notPredicate:(Char)->Boolean=TODO(“提供实现”)

您的意思是:

val originalPred :(Char) -> Boolean =  {it>'a'}
val somePred :(Char) -> Boolean =  {!originalPred.invoke(it)}
请注意,
it>'a'
只是一个例子。

您的意思是:

val originalPred :(Char) -> Boolean =  {it>'a'}
val somePred :(Char) -> Boolean =  {!originalPred.invoke(it)}

请注意,
it>'a'
只是一个示例。

因此,让我们先了解问题

您已经给出了
originalPredicate:(Char)->Boolean
,因此它将根据字符返回一个布尔值。例如,如果它将为“a”、“c”、“e”等返回true(只是一个示例),那么您必须为它们返回false,为“b”、“d”、“f”等返回true

因此,您需要调用
originalPredicate
,知道结果(即true或false),然后反转结果,然后返回它

val notPredicate:(Char)->Boolean={Char->
val booleanValue=原始预测值(字符)
return@notPredicate!布尔值
}
如果您简化了步骤,并使用
it
,这是lambda中变量的默认名称,并且由于lambda中的最后一条语句是自己返回的(因此您不必编写显式返回):

val notPredicate:(Char)->Boolean={!originalPredicate(it)}

那么,让我们先了解问题所在

您已经给出了
originalPredicate:(Char)->Boolean
,因此它将根据字符返回一个布尔值。例如,如果它将为“a”、“c”、“e”等返回true(只是一个示例),那么您必须为它们返回false,为“b”、“d”、“f”等返回true

因此,您需要调用
originalPredicate
,知道结果(即true或false),然后反转结果,然后返回它

val notPredicate:(Char)->Boolean={Char->
val booleanValue=原始预测值(字符)
return@notPredicate!布尔值
}
如果您简化了步骤,并使用
it
,这是lambda中变量的默认名称,并且由于lambda中的最后一条语句是自己返回的(因此您不必编写显式返回):

val notPredicate:(Char)->Boolean={!originalPredicate(it)}

非常感谢您!也谢谢你这样解释!我想得太多了,真的很感谢你!也谢谢你这样解释!我想得太多了,这真的很有帮助。请把你到目前为止尝试过的东西也贴出来。堆栈溢出是为了帮助您完成自己的工作。请同时发布您迄今为止尝试过的内容。堆栈溢出是为了帮助您完成自己的工作。