美文网首页
Scala的控制抽象

Scala的控制抽象

作者: Grits | 来源:发表于2018-03-12 15:52 被阅读0次

    高阶函数(Higher-order Functions)

    Scala 的控制抽象是根据高阶函数来进行的。高阶函数就是接受函数作为参数的函数。高阶函数给你额外的机会来精简代码

    1.高阶函数能够使你创建控制抽象来减少代码重复
    2.高阶函数能够使得API更加的简洁

    柯里化(Currying)

    柯里化是函数编程的一种技术。柯里化就是将一个含有单参数列表(single arguments list)的函数转化为一个含有多参数列表(multiple argument lists)的函数

    传名参数(By-name parameters)

    写法如下

    def func(v: => Boolean)
    

    第一,可以理解为省略空参列表的简写方式

    // 如果不使用传名参数的写法
    def func(v: String => Boolean) = println(v)
    func(() => 1 > 2)
    
    // 如果使用传名参数的写法
    def func(v: => Boolean) = println(v)
    func(1 > 2)
    // 可以传入表达式,也可以传入字面量
    

    第二,可以将传名参数类比为延迟计算(Lazy calculation),可以带来性能上的提升

    var assertionsEnabled = false
    def myAssert(predicate: () => Boolean) =
      if (assertionsEnabled && !predicate())
        throw new AssertionError 
    
    myAssert(1 / 0 == 0)
    // 上面的语句是不会抛出异常的,因为是延迟计算
    

    相关文章

      网友评论

          本文标题:Scala的控制抽象

          本文链接:https://www.haomeiwen.com/subject/fsnnfftx.html