Scala:函数与匿名函数

  • 函数是第一等公民
  • 函数类型
    • 高阶函数
    • 匿名函数

函数是第一等公民

  • 在scala中,函数是第一等公民
  • Scala中,函数和变量有同等的位置,或者说函数也是一种变量。
  • Scala中的函数可以作为实参传递给另一个函数;
  • 函数可以作为返回值;
  • 函数可以赋值给变量(这个变量需符合函数的类型的变量);
  • 函数可以存储在数据结构之中。

⚠️函数如同普通变量一样,也具有函数的类型。

函数类型

  1. 函数类型格式为:A=>B 表示一个接受类型A的参数,并返回类型B的函数

  2. Int => String,把整形数映射为String类型的函数类型。

高阶函数

  • 接受的参数是一个函数,或者返回值是一个参数,或者两者皆有之的函数,称为高阶函数。

例如:下列函数是以另一个函数(f)作为参数接入

def operate(f:(Int,Int) => Int ) = {f(4,4)
}
  • ⚠️f函数是以两个int类型的值作为参数,并返回一个int值

匿名函数

例如:

def greeting( ) = (name:String) => {"hello" + " " + name}

匿名函数也称为函数常量,也称函数文字量(类比String)。
定义格式:

(形参列表) => {函数体}

如:

(x:Int, y:Int) => x+y
val fun = (x:Int, y:Int) => x+y
var funr = (x:Int, y:Int) => x+y

上面三句都是可以使用的。
fun不能重新赋值,funr可以赋值其他的类型为(Int, Int)=>Int的函数。

代码:

package com.leili.scalaobject Function {def main(args: Array[String]): Unit = {var x  = (x: Int, y: Int) => {x + y}println(x(1,1))}
}

输出:4

Scala:函数与匿名函数相关推荐

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

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

  2. 好好学python·函数进阶(递归函数,回调函数,闭包函数,匿名函数,迭代器)

    函数进阶 递归函数 回调函数 闭包函数 特点 匿名函数 lambda 表达式 迭代器 iter() next() 迭代器的取值方案 迭代器取值特点,取一个少一个,直到都取完,最后再获取就会报错 检测迭 ...

  3. python高阶函数和匿名函数

    1.高阶函数 把函数当成一个参数的函数 例子: abs函数作为一个参数 def add(a,b,f): return f(a) + f(b) print (add(10,-10,abs)) 结果: 2 ...

  4. 匿名函数python_基于python内置函数与匿名函数详解

    内置函数 Built-in Functions abs() dict() help() min() setattr() all() dir() hex() next() slice() any() d ...

  5. 嵌套函数,匿名函数,高阶函数

    目录 嵌套函数 匿名函数 高阶函数 嵌套函数 就是在函数里再定义一个函数 # 1,函数内部可以在定义函数 # 2,函数要想执行,必须要先被调用 def name1():print('kk')def n ...

  6. python之路——内置函数和匿名函数

    楔子 在讲新知识之前,我们先来复习复习函数的基础知识. 问:函数怎么调用? 函数名() 如果你们这么说...那你们就对了!好了记住这个事儿别给忘记了,咱们继续谈下一话题... 来你们在自己的环境里打印 ...

  7. day13-递归函数、匿名函数、内置函数

    一 什么是函数递归 函数递归调用(是一种特殊的嵌套调用):在调用一个函数的过程中,又直接或间接地调用了该函数本身(也叫递归调用) 1 #直接调用本身 2 def f1(): 3 print('from ...

  8. 三元表达式、列表推导式、生成器表达式、递归、内置函数、匿名函数

    一.三元表达式 name=input('姓名>>: ') res='SB' if name == 'alex' else 'NB' print(res) 二.列表推导式和生成器表达式 #老 ...

  9. python在匿名函数作和_python之路——内置函数和匿名函数

    阅读目录 楔子 在讲新知识之前,我们先来复习复习函数的基础知识. 问:函数怎么调用? 函数名() 如果你们这么说...那你们就对了!好了记住这个事儿别给忘记了,咱们继续谈下一话题... 来你们在自己的 ...

最新文章

  1. GalHttprequest类库简介——android平台上的一个轻量级的http网络请求及缓存框架
  2. vue 加载页面时触发时间_解析Vue项目的四个方面优化
  3. 在Java中调用Python
  4. 循环神经网络(RNN, Recurrent Neural Networks)——无非引入了环,解决时间序列问题...
  5. LightOJ - 1265 概率
  6. 牛逼!Python的类和对象(长文系列第⑤篇)
  7. Js时间戳转为日期格式
  8. linux7 samba,Centos 7使用Samba实现文件共享
  9. taro 如何使用dom_taro创建的小程序项目怎么引用ant design mobile UI库
  10. c语言dp算法,通过leetcode学算法——动态规划(dp)
  11. 一篇文章搞懂前端学习方法与构建知识体系
  12. 只知道JWT,那JWE、JWS、JWK、JWA呢?
  13. 哄睡宝宝的有限状态机
  14. 高数:第四章(同济大学第七版)
  15. Ceph学习笔记1-Mimic版本多节点部署
  16. java实现字符串反转
  17. C++对接国际验证码接口DEMO示例
  18. 计算机技术在美术方面的应用,计算机技术在美术设计的应用
  19. 阿里 oracle 时间戳,阿里巴巴的骄傲,合伙人刘振飞回忆,OceanBase十年时间登上巅峰...
  20. 应用内版本更新库UpdateVersion

热门文章

  1. linux kernel --- checksum相关ip_summed和feature字段解释
  2. lucene geohash 在外卖场景中,商家不规则多边形配送范围技术应用
  3. (深度学习)构造属于你自己的Pytorch数据集
  4. PET图像的SUV计算
  5. android 学习笔记③
  6. SRILM文档分析之Prob.h
  7. Win7(Win2003)下安装Node.js(版本号:v0.11.0)提供下载
  8. mysql数据库中到底能建多少张表?(单实例下单个库)
  9. 随机森林的特征重要性原理
  10. 管桩的弹性模量计算公式_弹性模量法测定桩身应力分析