美文网首页
《scala编程》第8章 函数和闭包

《scala编程》第8章 函数和闭包

作者: 富士山下裸奔 | 来源:发表于2018-04-29 21:38 被阅读0次
love scala
8.1 方法
定义函数最常用的方式作为某个对象的成员,这样的函数称为方法。函数式编程的重要设计原则:程序应该被分解为许多个小函数, 每个函数都只做明确定义的任务

8.2 局部函数(处理helper function问题)
为什么要用局部函数?

  • 这些辅助函数helper function的名称会污染整个命名空间,一旦函数被装进可复用的类和对象中时,我们希望类的使用者不要看到这样的函数,而是直接使用类的功能
  • 通常希望在后续的工作中采用其他方式重写该类时,保留删除辅助函数helper function的灵活性
  • 除了局部变量,也可以用 private def (...)


    8.3 first-class function
    Scala 支持first-class function, 不仅可以定义def(...) 并调用函数,而且还可以用匿名的字面量编写函数并将它们进行传递(unnamed literals and then pass
    them around as values. 个人感觉有点像python 中的lambda函数风格)
    function literal vs function value
    前者被编译成类,并且试运行是实例化成函数值,函数字面量存在于源码(source code),而函数值以对象(object)的方式存在于运行时(at runtime),和类 classes (source code) 与对象objects (at runtime).

    8.4 字面量的short form
  • leave off the parameter types
    someNumbers.filter((x) => x > 0)
  • remove useless characters is to leave out parentheses around a parameter whose type is inferredsomeNumbers.filter(x => x > 0)
    8.5 占位符 _(Placeholder sysntax)
    val f = (_: Int) + (_: Int) _ + _ 将会展开一个参数接受两个参数的函数字面量。
    8.6 部分应用函数 partially applied functions
    somNumber.foreach(println (_)) 或者 somNumber.foreach(println _) 相当于
    someNumbers.foreach(x => println(x))

相关文章

  • Kotlin 函数式编程思想 FP in Kotlin

    Kotlin 函数式编程思想 : FP in Kotlin 函数式编程特性 闭包和高阶函数 函数编程支持函数作为第...

  • 《scala编程》第8章 函数和闭包

    8.2 局部函数(处理helper function问题)为什么要用局部函数? 这些辅助函数helper func...

  • Scala系列文章目录

    Scala(三)-①-函数式编程和异常 Scala(四)-①-面相对象初级 Scala(四)-②-面相对象中级-包...

  • scala函数和闭包

    Function and closure

  • scala闭包函数

    闭包是一个函数,它返回值取决于在此函数之外声明的一个或多个变量的值。 以下代码是一个匿名函数。 val m=(i:...

  • Scala的函数和闭包

    函数(Functions) 函数在 Scala 中除了方法(methods)之外还有多种形态的存在,局部函数(lo...

  • scala之函数和闭包

    函数和闭包 方法 局部函数:函数里面嵌套函数 局部函数可以访问包含它们的函数的参数,因此上面的函数可以改造为如下形...

  • Scala中的闭包

    笔者认为 Scala 的闭包是一种介于全局变量和函数局部私有变量之间的数据访问机制 闭包是一个函数与其相关的引用环...

  • Scala函数式编程(三) scala集合和函数

    前情提要: scala函数式编程(二) scala基础语法介绍 scala函数式编程(二) scala基础语法介绍...

  • 【五十二】 underscore

    前面我们已经讲过了,JavaScript是函数式编程语言,支持高阶函数和闭包。函数式编程非常强大,可以写出非常简洁...

网友评论

      本文标题:《scala编程》第8章 函数和闭包

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