在我的应用程序中,我正在通过各种类型过滤文件数组,如下所示:
val files:Array[File] = recursiveListFiles(file)
.filter(!_.toString.endsWith("png"))
.filter(!_.toString.endsWith("gif"))
.filter(!_.toString.endsWith("jpg"))
.filter(!_.toString.endsWith("jpeg"))
.filter(!_.toString.endsWith("bmp"))
.filter(!_.toString.endsWith("db"))
Run Code Online (Sandbox Code Playgroud)
但是,定义一个采用String数组并将所有这些过滤器作为连接函数返回的方法会更加巧妙.那可能吗?这样我就可以写了
val files:Array[File] = recursiveListFiles(file).filter(
notEndsWith("png", "gif", "jpg", "jpeg", "bmp", "db")
)
Run Code Online (Sandbox Code Playgroud)
Mor*_*itz 10
你可以这样做:
def notEndsWith(suffix: String*): File => Boolean = { file =>
!suffix.exists(file.getName.endsWith)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
551 次 |
| 最近记录: |