高阶函数可以把其它函数当作函数参数,帮助我们减少代码重复,例如:

object FileMatcher {
private def fileHere = (new File(".\\file").listFiles()) def fileEnding(query : String) = {
for(file <- fileHere if file.getName.endsWith(query))
yield file } def fileMathching(query: String, matcher:(String, String) => Boolean) = {
for(file <- fileHere if matcher(file.getName, query))
yield file
} def fileEnding2(query : String) = fileMathching(query, _.endsWith(_)) def fileContains(query : String) = fileMathching(query, _.contains(_)) def main(args: Array[String]): Unit = { fileEnding2(".scala").foreach { println }
}
}

最新文章

  1. 如何在Texstudio内加载语法检查词典?
  2. iOS 从Xcode看应用支持横竖屏
  3. pthread_create传递参数
  4. bzoj3555 企鹅QQ
  5. hdu 1710 二叉树的遍历
  6. Android java.lang.UnsupportedClassVersionError: com/android/dx/command/Main : Unsupported major.minor ver
  7. jquery.validate.js 应用示例
  8. c++ 怎样获取系统时间
  9. ServletInvocableHandlerMethod:167 - Error resolving argument
  10. mybatis3:Invalid bound statement (not found)
  11. DevExpress 控件中GridControl的使用
  12. React Native开发工具Nuclide使用
  13. python网络-多进程(21)
  14. JavaScript之调试工具之断言assert
  15. nat123学习笔记
  16. Prime Path--POJ3126(bfs)
  17. 什么是http头信息
  18. HttpClient 工具类
  19. git向github提交时不输入账号密码
  20. 【Hadoop】用web查看hadoop运行状态

热门文章

  1. SZU:J38 Number Base Conversion
  2. iOS基础 - 数据库-SQLite
  3. bzero与memset
  4. C#.Net获取Mac等PC信息
  5. vm_write
  6. 优化算法-BFGS
  7. A2D规则引擎
  8. jquery选择器之基本过滤选择器
  9. Linux下的IO监控与分析
  10. C#操作Kentico cms 中的 content(winform环境)