前言

说到大数据开发,scala这门语言似乎不可避免的要涉及到,尤其是在spark横行的时代,可让人奇怪的是面试大数据问道scala的时候,有些比较low的面试官会问:什么是闭包???
啥情况?这个在无数语言中都泛滥的词,你问这个只会让你显得很low。
那么遇到这种面试官,你只要按照我下面短短的一句话回答即可,回答完马上站起来说一句:不好意思,你们公司不适合我。

一句话回答这种很low的面试官

闭包就是一个特殊的内部函数\color{blue}{闭包就是一个特殊的内部函数}闭包就是一个特殊的内部函数

装B结束后还得冷静的分析一下

首先,闭包就是一种函数的叫法,不要被名字忽悠了。这个函数的定义:

如果在一个内部函数里对外部作用域(不是全局作用域)的变量进行引用,内部函数就称为闭包。\color{red}{如果在一个内部函数里对外部作用域(不是全局作用域)的变量进行引用,内部函数就称为闭包。}如果在一个内部函数里对外部作用域(不是全局作用域)的变量进行引用,内部函数就称为闭包。

因为本来定义在一个函数内部的变量属于局部变量,该函数生命周期结束,此变量则不可用被使用。那怎么办呢?于是就有了闭包(一个内部函数)。这个内部函数把外部函数的变量存放起来,即使外部函数生命周期结束,依然可以使用这个变量。(不懂闭包的人,看了这段话一定似懂非懂,看看下面的例子就恍然大悟):

def f1(n):def f2(x):return x + nreturn f2p1 = f1(2)print(p1(6))

结果:

8

解释:

上述示例中,函数f2对函数f1的参数n进行了引用,将带参数的函数f1给一个新的函数p1。当函数f1的生命周期结束时,已经引用的变量n存放在函数f2中,依然可以调用。

后记

闭包就是一个函数而已,本质就是将函数内部和外部连接起来的桥梁。

大数据面试官别再问闭包了相关推荐

  1. redis删除过期key的算法_面试官别再问我Redis内存满了该怎么办了

    概述 Redis的文章,我之前写过一篇关于「Redis的缓存的三大问题」,累计阅读也快800了,对于还只有3k左右的粉丝量,能够达到这个阅读量,已经是比较难了. 这说明那篇文章写的还过得去,收到很多人 ...

  2. 从面试官的角度谈谈大数据面试

    作者:大叔据 来源:大叔据 关于传授面试经验的文章太多了,眼花缭乱,我这里就不谈了,点进来想获取几吨面试学习资料的同学,抱歉让你失望了.(我是真的找不到那么多资料...).所以,今天我们只聊面试官. ...

  3. 【面试经】数据分析 or 数据开发面试必备思路,面试官都会这样问。

    欢迎来到" 久也 "的空间 希望能让 数据 相关工作的同学遇到困难找到答案 没有请找我!!! 目录 前言: 什么是链路"链路"? 首先以项目为维度的话,链路如下 ...

  4. 今天来谈谈面试官最喜欢问JS中的闭包问题吧

    今天来谈谈面试官最喜欢问JS中的闭包问题吧 1.什么是闭包? 闭包是指有权访问另外一个函数作用域中的变量的函数,闭包就是函数的局部变量集合,只是这些局部变量在函数返回后会继续存在.闭包就是函数的&qu ...

  5. 十年项目经验面试官亲传大数据面试__大数据面试独孤九剑

    文章目录 引言 第一剑「总决式」功能概述(三句话左右概况,简明扼要) 第二剑「破剑式」项目周期(开发时长和人员配置) 开发时长: 人员配置 第三剑「破刀式」技术架构(技术选项及框架版本) 第四剑「破枪 ...

  6. 倒排索引原理_拜托,面试请不要再问我分布式搜索引擎的架构原理!

    欢迎关注头条号:石杉的架构笔记 周一至周五早八点半!精品技术文章准时送上!!! 精品学习资料获取通道,参见文末 目录 (1)倒排索引到底是啥? (2)什么叫分布式搜索引擎? (3)ElasticSea ...

  7. hive 时间转字符串_大数据面试杀招——Hive高频考点,还不会的进来挨打

    一.什么是Hive,为什么要用Hive,你是如何理解Hive? 面试官往往一上来就一个"灵魂三连问",很多没有提前准备好的小伙伴基本回答得都磕磕绊绊,效果不是很好.下面贴出菌哥的回 ...

  8. 大数据面试之新浪面试题

    大数据面试之新浪面试题 学长1 一面 1)自我介绍 叫什么名字,来自哪里,本科哪个学校,硕士哪个学校,大数据做了多长时间,对Hadoop生态圈以及Spark生态圈中的哪些技术比较了解(很简单的一句就带 ...

  9. 大数据面试总结《十五》--人事面试技巧总结

    一定不要将公司的工作当作负担,一定要做好并且学到东西,这才是你下一次跳槽能够展示的东西,所以在公司工作,你拿着工资,而不只是在为公司打工,而是为自己的未来进行修炼,一定要有这方面的意识. 总之,面试的 ...

最新文章

  1. mysql事务处理 begin_mysql 事务处理
  2. saltstack中salt-key收集的主机名与实际主机名不一致
  3. MVC3 中使用Unity实现依赖注入
  4. python实现大批量pdf格式论文的重命名与目录制作功能
  5. 1900页Python系列PPT分享五:函数设计与应用(134页)
  6. js匿名函数--转了
  7. python不用sort排序_Python排序方法sort、sorted的key参数的作用
  8. 3D视觉关键技术与核心问题包括哪些?
  9. 【图像增强】基于matlab GUI图像双边滤波【含Matlab源码 1492期】
  10. 如何使用winrar打开war包
  11. Java二维数组——关灯游戏算法
  12. Hessian矩阵(黑塞矩阵)
  13. 什么是serialVersionUID?serialVersionUID详解
  14. macos 如何优美地打开知网caj文件 - macos 如何打开caj文件
  15. 石家庄地铁选站系统进度报告
  16. 银河麒麟V10忘记密码
  17. 计算机开机密码有几成,电脑密码设置有哪些类型 电脑开机密码忘了怎么解锁...
  18. 被“投机之王”奉为交易核心的时间要素到底是什么?
  19. 正态分布与泊松分布的关系
  20. 大数据可视化应用工具,主要有哪几种?

热门文章

  1. .bat以管理员身份运行
  2. 【输入法】Rime-中州韵 基本设置 附:官方定制指南
  3. Photoshop怎么实现图片局部马赛克
  4. 一步一步使用阿里云容器服务部署基于.NET的JEXUS网站 (转)
  5. spring 官方文档
  6. CSS + DIV 让页脚始终保持在页面底部
  7. python-函数之命名空间作用域
  8. 算法笔记--STL中的各种遍历及查找(待增)
  9. Java web后台插入数据库中文乱码问题解决
  10. dubbo分布式服务子系统的划分