如何使用Lamba表达式使Kotlin中的Java方法调用不那么冗长?

如何使用Lamba表达式使Kotlin中的Java方法调用不那么冗长?,java,lambda,kotlin,Java,Lambda,Kotlin,对于Lambda表达式,下面的函数是否可以不那么冗长?我怎样才能把它剪下来?它正在调用FilenameFilter.accept Java方法 val files = File(SECTIONS_DIR).listFiles(object : FilenameFilter { override fun accept(dir: File?, filename: String): Boolean { if (filename.matches(r

对于Lambda表达式,下面的函数是否可以不那么冗长?我怎样才能把它剪下来?它正在调用FilenameFilter.accept Java方法

val files = File(SECTIONS_DIR).listFiles(object : FilenameFilter {
            override fun accept(dir: File?, filename: String): Boolean {
                if (filename.matches(regex))
                    return true
                else
                    return false
            }
        })

我不确定Kotlin语法,但您可以通过直接返回布尔表达式来减少它,消除if:

我相信Kotlin lambda语法如下所示:

val files = File(SECTIONS_DIR).listFiles { dir, filename -> filename.matches(regex) }
val files = File(SECTIONS_DIR).listFiles { dir, filename -> filename.matches(regex) }

编辑:根据Sergey Mashkov的反馈删除不必要的括号。谢谢

要澄清最短形式:

val files = File(SECTIONS_DIR).listFiles { dir, filename -> filename.matches(regex) }