[英]Lambda expressions “Not” predicate
我目前正在学习 Kotlin 并希望成为一名开发人员,但我遇到了一个问题,无法找出答案(即使经过广泛的谷歌研究)。
如果有人可以帮助我并解释他们的解决方案,将不胜感激。 :)
先感谢您!
问题:
“编写一个采用 originalPredicate 的谓词:(Char) -> Boolean 变量并返回否定结果。您的谓词是过滤字符串。”
实现:val notPredicate: (Char) -> Boolean = TODO("提供实现")
所以,让我们先了解问题。
您已经给出originalPredicate: (Char) -> Boolean
,因此它将根据字符返回 Boolean 值。 例如,如果它会为 'a'、'c'、'e' 等返回 true(只是一个示例),那么您必须为它们返回 false,并且为 'b'、'd'、'f 返回 true ', ETC。
所以,你想调用originalPredicate
,知道结果(即真或假),然后反转结果,然后返回它。
val notPredicate: (Char) -> Boolean = { char ->
val booleanValue = originalPredicate(char)
return@notPredicate !booleanValue
}
如果您简化步骤,并使用it
作为 lambda 中变量的默认名称,并且由于 lambda 中的最后一条语句自行返回(因此您不必编写显式返回):
val notPredicate: (Char) -> Boolean = { !originalPredicate(it) }
你是这个意思吗:
val originalPred :(Char) -> Boolean = {it>'a'}
val somePred :(Char) -> Boolean = {!originalPred.invoke(it)}
注意, it>'a'
只是一个例子。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.