Zak*_*rdi 4 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(regex))
return true
else
return false
}
})
Run Code Online (Sandbox Code Playgroud)
Dav*_*rad 12
我不确定Kotlin语法,但你可以通过直接返回布尔表达式来减少它,从而消除if:
val files = File(SECTIONS_DIR).listFiles(object : FilenameFilter {
override fun accept(dir: File?, filename: String): Boolean {
return filename.matches(regex)
}
})
Run Code Online (Sandbox Code Playgroud)
我相信Kotlin lambda语法看起来像这样:
val files = File(SECTIONS_DIR).listFiles { dir, filename -> filename.matches(regex) }
Run Code Online (Sandbox Code Playgroud)
编辑:根据Sergey Mashkov的反馈删除不必要的括号.谢谢!
澄清最短的形式:
val files = File(SECTIONS_DIR).listFiles { dir, filename -> filename.matches(regex) }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
820 次 |
| 最近记录: |