如何使用Lamba表达式使Kotlin中的Java方法调用不那么冗长?
对于Lambda表达式,下面的函数是否可以不那么冗长?我怎样才能把它剪下来?它正在调用FilenameFilter.accept 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
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) }