第二课、Scala函数

1.函数可以被简单的被认为是包裹了一条或者几条语句的代码体,该代码体接收若干参数,经过代码体处理后返回结果,形如数学中的f(x) = x + 1

2.在Scala中函数是一等公民,可以像变量一样被传递,被赋值,同时函数可以赋值给变量,变量也可以赋值给函数,之所以可以是这样,原因在于函数背后是类和对象,也就是说在运行的时候函数其实是一个变量

3.Scala函数背后的类是Scala自动生成的,且可以天然的被序列化和反序列化

   序列化和反序列化意义

       1)可以天然的序列化和反序列化的直接好处就是函数可以在分布式系统上传递

       2)因为函数背后其实是类和对象,所以可以和普通的变量完全一样的应用在任何普通变量可以运用的地方,包括作为参数传递,作为返回值,被变赋值和赋值给变量等

4.Scala中用def关键字来定义函数

5.Scala函数会自动进行类型推断来确定函数返回值的类型,如果函数名称和函数体之间没有等于号的话则类型推断失效,此时函数的类型是Unit

6.Scala中函数的参数可以是函数

7.如果在函数体中无法推导出函数的类型,则必须声明具体的类型,例如下面的fibonacci

8.函数的参数可以有默认值,这样在调用函数的时候如果不想改变默认值的话就直接不传递该参数而是直接使用默认值即可

9.我们可以基于函数的参数的名称来调整函数的传递参数的顺序

10.函数中如果不确定传递参数的个数,可以使用变长参数的方式;传参时候的一个方便的语法是: _*

11.可变参数中的数据其实会被收集成为Array数组,我们在入口方面main中其实就是可变参数,是以Array[String]的方式呈现的


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
第三章介绍了Scala函数和方法,以及它们的区别。具体内容如下: 1. 函数和方法的区别:函数是一段可以独立调用的代码,它可以像变量一样被传递、返回和赋值;而方法是属于某个对象或类的一段代码,它必须通过对象或类来调用。 2. 函数的定义方式:可以使用def关键字定义函数,也可以使用匿名函数(lambda表达式)。 3. 函数的参数:Scala函数可以没有参数,也可以有多个参数。参数可以有默认值,也可以是可变参数。 4. 函数的返回值:Scala函数可以没有返回值,也可以有返回值。返回值类型可以显式声明,也可以自动推断。 5. 方法的定义方式:方法必须定义在对象或类中,使用def关键字表示。方法可以有访问修饰符和参数列表,也可以有返回值类型和方法体。 6. 方法的参数:和函数一样,方法可以有多个参数,也可以有默认值和可变参数。 7. 方法的返回值:方法必须有返回值类型,如果没有显式声明,则默认返回Unit类型。 8. 函数和方法的调用:函数可以直接调用,也可以通过变量、高阶函数等方式调用;方法必须通过对象或类来调用。 9. 函数式编程的特点:函数式编程强调函数的纯粹性、不可变性和高阶函数的使用,它能够简化代码、提高可读性和可维护性。 总之,Scala函数和方法都是非常重要的编程工具,它们可以让我们更加灵活地组织代码,提高开发效率和代码质量。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

泪痕残

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值