首页 > 代码库 > scala高级特性-01

scala高级特性-01

目标一:深入理解高阶函数

  高阶函数

    1.1概念

    Scala混合了面向对象和函数式的特性,

    我们通常将可以做为参数传递到方法中的表达式叫做函数。

    在函数式编程语言中,函数是“头等公民”,

 

    高阶函数包含:作为值的函数匿名函数闭包柯里化等等。

    1.2作为值的函数(故名思议:函数的值作为返回值)

    技术分享

    1.3匿名函数

    在scala中,你不需要给每一个函数命名,没有将函数赋给变量的函数叫做匿名函数

    技术分享

    由于scala可以自动推断出参数的类型,所以可以写的精简一些

    技术分享

    还记的神奇的下划线吗?这才是终结方式

    技术分享

    1.4将方法转换成函数

    在scala中,方法和函数式不一样的,最本质的区别是函数可以作

    为参数传递到方法中,但是方法可以别转换成函数,

    神奇下划线有出现了

    技术分享

    1.5柯里化

    柯里化指的是原来接受两个参数的方法变成新的接受一个参数的方法的过程

    第一种方法:def m(x:Int)=(y:Int)=>x*y

    技术分享

    第二种方法:def m(x:Int)(y:Int) =x*y

    技术分享

  

    下一节介绍隐式转换和隐士参数

    Merry Christmas

      

      

scala高级特性-01