2019独角兽企业重金招聘Python工程师标准>>>

什么是高阶函数

高阶函数(Higher-Order Function)就是操作其他函数的函数。 Scala 中允许使用高阶函数, 高阶函数可以使用其他函数作为参数,或者使用函数作为输出结果。

demo

object HelloWorld {def main(args: Array[String]): Unit = {/*** 这儿的sumAB 是一个函数对象,可以理解成C语言中的函数指针,指向下面定义的“sumAB”这个函数类型* 吧一个函数对象做为参数,传递给execute函数*/execute(sumAB, 2)/***returnFunc() 返回一个函数,后面接圆括号表示调用返回的函数*/println(returnFunc()(3,4))       }/*** @param t 函数对象。t函数对象接受2个Int的参数,返回值是Int*     可以理解成C语言中的函数指针,接受一个指针,该指针是指向 接受两个Int类型的参数返回值是Int的函数* @param b Int类型参数* @return*/def execute(t:(Int,Int) => Int, b: Int) = {println("在 execute方法内")println("参数: " + t(b,b))t(b,b)}def sumAB(a: Int, b:Int): Int = {println("a+b=" + a+b)a+b}/*** * @return 返回函数,可以理解成C语言中的指针函数。该函数返回一个指针,指针(函数指针)。*    返回的该指针指向 接受2个Int参数,返回Int值的函数*/def returnFunc():(Int,Int)=>Int = {def sumCD(c:Int,d:Int):Int = {c+d}sumCD}}

总结

  1. 一个函数参数接收另一函数作为参数。可以看成一个函数的参数接收一个函数指针。
  2. 函数返回一个函数。 可以看成函数返回一个函数指针。

转载于:https://my.oschina.net/u/1396185/blog/1786935

scala 高阶函数学习相关推荐

  1. Scala 高阶函数(作为值的函数、匿名函数、闭包、柯里化)+隐式转换和隐式参数...

    Scala高级特性 1.    学习目标 1.1.   目标一:深入理解高阶函数 1.2.   目标二:深入理解隐式转换 2.    高阶函数 2.1.   概念 Scala混合了面向对象和函数式的特 ...

  2. Scala高阶函数详解

    概述 高阶函数主要有两种:一种是将一个函数当做另外一个函数的参数(即函数参数):另外一种是返回值是函数的函数. 用函数作为形参或返回值的函数,称为高阶函数. (1)使用函数作为参数 //函数参数,即传 ...

  3. scala 高阶函数,闭包及柯里化

    概念 一个函数的参数或返回值还是函数,这个函数就是高阶函数 用法 参数为函数 scala> val arr=Array(1,2,3) arr: Array[Int] = Array(1, 2, ...

  4. Scala高阶函数操作示例详解

    Scala 运算符和集合转换操作示例集锦 一.常用操作符(操作符其实也是函数) ++ ++[B](that: GenTraversableOnce[B]): List[B] 从列表的尾部添加另外一个列 ...

  5. scala入门之高阶函数案例

    基于Java学习scala 高阶函数练习案例 1.定义一个高阶函数,按照指定的规则对集合里面的每个元素进行操作 2.定义一个高阶函数,按照指定的规则对集合中的所有元素进行聚合 3.定义一个高阶函数,按 ...

  6. python学习总结1—高阶函数

    python 高阶函数学习 高阶函数 介绍python 高阶函数的使用方法 map/reduce函数 map函数 利用map()函数,把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字. ...

  7. 一木.溪桥学Python-09:函数的返回值、函数的作用域、作用域的优先级、递归函数、内置文件中常用方法、匿名函数lambda、高阶函数

    一木.溪桥 在Logic Education跟Amy学Python 12期:Python基础课 一木.溪桥学Python-09:函数的返回值.作用域.作用域的优先级.递归函数.内置文件中常用方法.匿名 ...

  8. python order函数_Python进阶内容(一)--- 高阶函数 High order function

    0. 问题 # 本文将围绕这段代码进行Python中高阶函数相关内容的讲解 # 文中所有代码的兼容性要求为:Python 3.6,IPython 6.1.0 def addspam(fn): def ...

  9. Scala - 快速学习08 - 函数式编程:高阶函数

    函数式编程的崛起 函数式编程中的"值不可变性"避免了对公共的可变状态进行同步访问控制的复杂问题,能够较好满足分布式并行编程的需求,适应大数据时代的到来. 函数是第一等公民 可以作为 ...

最新文章

  1. (转)IIS7 配置ASP.NET 2.0, WCF, ASP.NET MVC
  2. python socket epoll_python 关于epoll的学习
  3. P1081 [NOIP2012 提高组] 开车旅行(倍增)(动态规划)
  4. JavaScript高级程序设计学习笔记第二十章--JSON
  5. mysql查询自定义数据_实现自定义查询的数据库设计及实现(一)
  6. protocol buffer开发指南
  7. corntab定时执行任务
  8. 技术分享连载(八十六)
  9. Packet Tracert 5.0 使用教程
  10. java按钮鼠标_我想用java做一个鼠标永远点不到button的应用,下面这个程序的错误在哪?...
  11. 关关小说采集器规则正则表达式方法
  12. C# Windows API介绍与调用
  13. Untiy3D - 3 打飞碟小游戏
  14. 新版C语言面试题面试题库(含答案)
  15. Integer计算保留小数点位数
  16. Stacked Hourglass Networks简析
  17. 大屏幕显示屏 html,在大屏幕上显示墙的三种解决方案
  18. 三、Eureka注册与发现之Eureka Comsumer
  19. Jenkins自动化打包生成二维码下载链接
  20. 《GhostXP_SP2电脑公司经典版v8.2》LONGWANG制作

热门文章

  1. python 双层for循环_day05-Python运维开发基础(双层循环、pass/break/continue、for循环)...
  2. k8s部署tomcat及web应用_k8s部署tomcat应用服务
  3. 计算机科技英语论文,计算机专业英语(第2版)——科技交流与科技论文写作
  4. ie 无法运行php,PHP会话无法在IE中运行
  5. 如何实现消息功能_如何实现微信小程序的轮盘抽奖功能
  6. python安装器要删吗_Centos7中,教你在不删除2.7下,安装python3
  7. oracle 2018 深圳大会,2018中国科幻大会深圳时间、地点、亮点
  8. php 调用父类变量,PHP-通过实例化父类访问常量
  9. 高德 省市区 mysql_amap-district-data
  10. python文件数据类型_Python核心数据类型——文件