我目前正在学习 Kotlin,并希望成为一名开发人员,但我遇到了一个问题,无法找出答案(即使经过广泛的 google 研究)。
如果有人可以帮助我并解释他们的解决方案,我将不胜感激。 :)
提前谢谢您!
问题:
“编写一个谓词,采用原始谓词:(Char) -> bool 变量并返回否定结果。您的谓词是过滤字符串。”
实现: val notPredicate: (Char) -> Boolean = TODO("提供实现")
最佳答案
所以,让我们先了解一下问题。
你已经给出了originalPredicate: (Char) -> Boolean
,所以它会根据字符返回一个 bool 值。例如,如果它会为“a”、“c”、“e”等返回 true(仅作为示例),那么您必须为它们返回 false,为“b”、“d”、“f”返回 true ”等
因此,您想调用originalPredicate
,知道结果(即 true 或 false),然后反转结果并返回它。
val notPredicate: (Char) -> Boolean = { char ->
val booleanValue = originalPredicate(char)
return@notPredicate !booleanValue
}
如果您简化步骤,并使用 it
这是 lambda 内变量的默认名称,并且由于 lambda 中的最后一个语句是由其自身返回的(因此您不必编写显式 return ):
val notPredicate: (Char) -> Boolean = { !originalPredicate(it) }
关于kotlin - Lambda 表达式 "Not"谓词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63225572/