Scala 函数式编程:控制抽象与面向对象编程深入解析
1. 控制抽象基础
在 Scala 编程中,控制抽象是一个强大的概念,它可以帮助我们减少代码重复,提高代码的可维护性和可读性。下面我们将通过几个具体的例子来深入了解控制抽象的相关技术。
首先是 FileMatcher
对象,它展示了如何使用闭包来减少代码重复。以下是 FileMatcher
的代码实现:
object FileMatcher {
private def filesHere = (new java.io.File(".")).listFiles
private def filesMatching(matcher: String => Boolean) =
for (file <- filesHere; if matcher(file.getName))
yield file
def filesEnding(query: String) =
filesMatching(_.endsWith(query))
def filesContaining(query: String) =
filesMatching(_.contains(query))
def filesRegex(query: String) =
filesMatching(_.matches(query))
}
在这个代码中, filesMatching
方法是一个高阶函数,它接受一个函数作为