加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Scala方法,返回多个连接过滤器函数

发布时间:2020-12-16 08:59:17 所属栏目:安全 来源:网络整理
导读:在我的应用程序中,我正在按各种类型过滤文件数组,如下所示: val files:Array[File] = recursiveListFiles(file) .filter(!_.toString.endsWith("png")) .filter(!_.toString.endsWith("gif")) .filter(!_.toString.endsWith("jpg")) .filter(!_.toString.en
在我的应用程序中,我正在按各种类型过滤文件数组,如下所示:

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"))

但是,定义一个采用String数组并将所有这些过滤器作为连接函数返回的方法会更加巧妙.那可能吗?
这样我就可以写了

val files:Array[File] = recursiveListFiles(file).filter(
  notEndsWith("png","gif","jpg","jpeg","bmp","db") 
)

解决方法

你可以这样做:

def notEndsWith(suffix: String*): File => Boolean = { file =>
  !suffix.exists(file.getName.endsWith)
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读