[英]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.