zoukankan      html  css  js  c++  java
  • scala 闭包的概念

    闭包本质上是一个函数和其引用的变量的统一定义,它的返回值依赖于这个函数外部的一个或者多个变量。

    var test = (i:Int) => i+sum
    

    这里 i是一个形参, 随着函数的调用传入不同的值 。而more是一个自由变量。

    依照函数的字面量(个人理解为函数名)在运行时创建函数对象被称作闭包,通过捕获自由变量的绑定,从而对函数字面量执行的关闭动作。

    当自由变量的值发生改变是, 闭包可以捕获这一变化, 从而做出相应的改变。

    如上图, 当sum有1变为100时,对应的闭包检测到这一变化,新的函数调用返回新的值。

     “An object is data with functions. A closure is a function with data.” — John D. Cook  贴上,慢慢理解

  • 相关阅读:
    Android笔记
    Scala中apply的用法
    MySQL备忘
    Spring test
    Scala
    Dubbo
    Scala元组
    Scala中None, Nil, Nothing的区别
    java多态与异常处理——动手动脑
    《大道至简》第七八章读后感
  • 原文地址:https://www.cnblogs.com/missmzt/p/5899487.html
Copyright © 2011-2022 走看看