上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
9.6 结语
本章向你展示了如何基于Scala对函数的丰富支持来构建控制抽象。可以在代码中使用函数来提炼出通用的控制模式,也可以利用Scala类库提供的高阶函数来复用那些所有程序员代码都适用的公共控制模式。我们还探讨了如何使用柯里化和传名参数让你自己的高阶函数用起来语法更加精简。
在前一章和本章,你已经了解到关于函数的大量信息。接下来的几章我们将回到Scala中那些更加面向对象的功能特性做进一步讲解。
[1]这些特殊用途的循环方法是在特质Iterable中定义的,List、Set和Map都扩展自这个特质。第17章将会对此做更深入的讨论。
[2]在前一章,当我们对传统方法使用占位符表示法时,比如println _,需要在方法名和下画线之间放一个空格。在本例中不需要这样做,因为println_是一个合法的Scala标识符,但curriedSum(1)_并不是。
[3]这里我们只能用myAssert而不是assert,因为Scala自己也提供了一个assert,在14.1节会讲到这个。