我正在学习 Kotlin,并且在理解带括号和花括号的过滤器之间的区别时遇到了一些困难。如果我检查过滤器实现,Intellij 会将我重定向到同一个源。
代码示例:
listOf("john", "dave").filter { name -> name.startsWith("j") }
// versus
// simple predicate function
fun getSimplePredicate(): (String) -> Boolean =
name: String -> name.firstName.startsWith(prefix)
// actual filter call
listOf("john", "dave).filter(getSimplePredicate())
Run Code Online (Sandbox Code Playgroud)
如果我想以某种方式打电话filter { getSimplePredicate() }怎么办?
有办法吗?有什么区别?提前致谢