Scala:函数与匿名函数
Scala:函数与匿名函数
- 函数是第一等公民
- 函数类型
- 高阶函数
- 匿名函数
函数是第一等公民
- 在scala中,函数是第一等公民
- Scala中,函数和变量有同等的位置,或者说函数也是一种变量。
- Scala中的函数可以作为实参传递给另一个函数;
- 函数可以作为返回值;
- 函数可以赋值给变量(这个变量需符合函数的类型的变量);
- 函数可以存储在数据结构之中。
⚠️函数如同普通变量一样,也具有函数的类型。
函数类型
函数类型格式为:
A=>B
表示一个接受类型A的参数,并返回类型B的函数如
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:函数与匿名函数相关推荐
- Scala 高阶函数(作为值的函数、匿名函数、闭包、柯里化)+隐式转换和隐式参数...
Scala高级特性 1. 学习目标 1.1. 目标一:深入理解高阶函数 1.2. 目标二:深入理解隐式转换 2. 高阶函数 2.1. 概念 Scala混合了面向对象和函数式的特 ...
- 好好学python·函数进阶(递归函数,回调函数,闭包函数,匿名函数,迭代器)
函数进阶 递归函数 回调函数 闭包函数 特点 匿名函数 lambda 表达式 迭代器 iter() next() 迭代器的取值方案 迭代器取值特点,取一个少一个,直到都取完,最后再获取就会报错 检测迭 ...
- python高阶函数和匿名函数
1.高阶函数 把函数当成一个参数的函数 例子: abs函数作为一个参数 def add(a,b,f): return f(a) + f(b) print (add(10,-10,abs)) 结果: 2 ...
- 匿名函数python_基于python内置函数与匿名函数详解
内置函数 Built-in Functions abs() dict() help() min() setattr() all() dir() hex() next() slice() any() d ...
- 嵌套函数,匿名函数,高阶函数
目录 嵌套函数 匿名函数 高阶函数 嵌套函数 就是在函数里再定义一个函数 # 1,函数内部可以在定义函数 # 2,函数要想执行,必须要先被调用 def name1():print('kk')def n ...
- python之路——内置函数和匿名函数
楔子 在讲新知识之前,我们先来复习复习函数的基础知识. 问:函数怎么调用? 函数名() 如果你们这么说...那你们就对了!好了记住这个事儿别给忘记了,咱们继续谈下一话题... 来你们在自己的环境里打印 ...
- day13-递归函数、匿名函数、内置函数
一 什么是函数递归 函数递归调用(是一种特殊的嵌套调用):在调用一个函数的过程中,又直接或间接地调用了该函数本身(也叫递归调用) 1 #直接调用本身 2 def f1(): 3 print('from ...
- 三元表达式、列表推导式、生成器表达式、递归、内置函数、匿名函数
一.三元表达式 name=input('姓名>>: ') res='SB' if name == 'alex' else 'NB' print(res) 二.列表推导式和生成器表达式 #老 ...
- python在匿名函数作和_python之路——内置函数和匿名函数
阅读目录 楔子 在讲新知识之前,我们先来复习复习函数的基础知识. 问:函数怎么调用? 函数名() 如果你们这么说...那你们就对了!好了记住这个事儿别给忘记了,咱们继续谈下一话题... 来你们在自己的 ...
最新文章
- GalHttprequest类库简介——android平台上的一个轻量级的http网络请求及缓存框架
- vue 加载页面时触发时间_解析Vue项目的四个方面优化
- 在Java中调用Python
- 循环神经网络(RNN, Recurrent Neural Networks)——无非引入了环,解决时间序列问题...
- LightOJ - 1265 概率
- 牛逼!Python的类和对象(长文系列第⑤篇)
- Js时间戳转为日期格式
- linux7 samba,Centos 7使用Samba实现文件共享
- taro 如何使用dom_taro创建的小程序项目怎么引用ant design mobile UI库
- c语言dp算法,通过leetcode学算法——动态规划(dp)
- 一篇文章搞懂前端学习方法与构建知识体系
- 只知道JWT,那JWE、JWS、JWK、JWA呢?
- 哄睡宝宝的有限状态机
- 高数:第四章(同济大学第七版)
- Ceph学习笔记1-Mimic版本多节点部署
- java实现字符串反转
- C++对接国际验证码接口DEMO示例
- 计算机技术在美术方面的应用,计算机技术在美术设计的应用
- 阿里 oracle 时间戳,阿里巴巴的骄傲,合伙人刘振飞回忆,OceanBase十年时间登上巅峰...
- 应用内版本更新库UpdateVersion
热门文章
- linux kernel --- checksum相关ip_summed和feature字段解释
- lucene geohash 在外卖场景中,商家不规则多边形配送范围技术应用
- (深度学习)构造属于你自己的Pytorch数据集
- PET图像的SUV计算
- android 学习笔记③
- SRILM文档分析之Prob.h
- Win7(Win2003)下安装Node.js(版本号:v0.11.0)提供下载
- mysql数据库中到底能建多少张表?(单实例下单个库)
- 随机森林的特征重要性原理
- 管桩的弹性模量计算公式_弹性模量法测定桩身应力分析