Scala函数相关内容

一、 函数简化原则

1、 定义变量/常量时数据类型可以省略

2、 函数调用问题上的简化规则

1、 在scala函数调用中都需要通过对象.函数名(参数列表)来进行调用,其中点可以省略,使用空格代替
2、 在函数调用时如果参数列表只有一个或者没有,调用的时候可以不加()

3、 函数定义过程中的简化规则

1、如果函数有返回值,return可以省略,使用函数逻辑上的最后一行代码来作为函数的返回值
2、 如果函数的函数体只有一行代码,函数体的{}可以省略
3、 函数的返回值类型可以省略,根据函数体逻辑上的最后一行代码来进行判断,但是当函数体逻辑上的最后一行代码
	使用return返回了数据,那么函数的返回值类型就无法省略
4、 如果函数的返回值类型明确为Unit类型,那么函数的返回值类型以及=都可以省略
5、 如果函数定义的时候,函数没有形参,那么定义函数的时候形参列表的()可以省略

二、函数的高阶使用

scala是一门纯函数式编程语言,在scala中,函数可以声明在任何位置

1、 函数可以当作变量值来传递

var f:函数类型 = 函数名
var f = 函数名 _
如果f显示的声明了函数类型,那么右边的函数名就不需要加_
函数名 _ 代表将函数当作一个整体赋值给一个变量

2、 函数当作参数来使用

def fun(参数是一个函数):Unit => {}
通常结合匿名函数来使用

3、 匿名函数的简化原则

  • 当匿名函数当作参数或者返回值来使用时,匿名函数的形参列表可以省略,会自动推断
  • 当匿名函数的形参个数只有一个时,匿名函数的形参列表的()可以省略
  • 如果匿名函数的函数体只有一行,匿名函数的函数体的{}就可以省略
  • 如果匿名函数的所有形参在函数体中只出现一次,那么形参和=>都可以省略,函数体当中的形参使用_来代替
  • 如果匿名函数有多个参数,多个参数在函数体也只出现了一次,也可以这样简化,简化的时候第一个_代表匿名函数形参的第一个参数值,第二个_代表第二个形参值

4、 scala的惰性机制

调用函数时,我们想要在使用函数返回值的时候再调用该函数,这时就需要用到scala的惰性机制

  • lazy val 变量 = 函数的调用

注意点:lazy不能修饰var变量,只能修饰val常量

5、 scala的递归函数

函数内部又调用了自己的函数

6、 scala函数的闭包

函数声明在另外一个函数内部,使用到了另外一个函数中的变量,此时如果函数没有调用,另外一个函数的内部变量就无法销毁,直到内部函数调用完成,才能销毁,此时内部函数和外部函数中的变量组成一个闭包

闭包的作用:延长外部函数的某个变量的生命周期

7、 scala函数的柯里化

本质上可以理解为函数闭包的一个特例,将原本需要传递多个参数的函数,转为多个需要传递一个参数的函数,多个函数之间有变量依赖关系

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值