码迷,mamicode.com
首页 > 其他好文 > 详细

Scala减少代码重复

时间:2016-08-04 14:50:22      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:

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

技术分享
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 } 
  }
}
View Code

 

Scala减少代码重复

标签:

原文地址:http://www.cnblogs.com/jiang-Xin/p/5736578.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!