美文网首页
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控制抽象

    控制抽象 1. 减少代码重复

  • Scala的控制抽象

    高阶函数(Higher-order Functions) Scala 的控制抽象是根据高阶函数来进行的。高阶函数就...

  • Scala读书笔记

    《Scala编程完整版》笔记 点滴 第9章 控制抽象 scala的任何方法调用,如果只传入一个参数,就能可选地使用...

  • 8. 高阶函数练习

    柯里化: 控制抽象:比如我们自己定义一个until功能: Scala programmers can build ...

  • 控制抽象

    根据正交设计的基本原则,如果设计出现重复的控制逻辑,可抽象出稳定的抽象;借助于Scala强大的可扩展能力,可以将「...

  • 美颜Java

    从原生的Java API创建线程谈起,讲述Scala对「控制结构」抽象的设计与实现. 创建线程 在Java8之前,...

  • scala 抽象类(abstract)与特质(trait)

    抽象类 In Scala, an abstract class is constructed using the ...

  • Scala 的抽象成员

    Key Words: abstract member, pre-initialized fields, lazy ...

  • Scala-简明速学01-控制语句

    Scala-简明速学01-控制语句 while循环 Scala中的while循环基本与Java相似,但是Scala...

  • scala(十) 抽象类和单例对象

    java中的抽象类 语法: [访问修饰符] abstract class 类名{} scala 中的抽象类 语法:...

网友评论

      本文标题:Scala的控制抽象

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