Scala的四种函数种类
知识点:
- scala的函数种类可分为4种:
①成员函数,函数定义在类的内部,作为类的成员,即为成员函数
②本地函数,定义在函数内的函数,即为本地函数
重点:③匿名函数,特点:没有函数名;通过=>来连接参数列表和方法体
关键是匿名函数的作用:
匿名函数可以当做参数进行赋值 ,比如:val f2=(a:Int,b:Int)=>{a+b}
匿名函数可以当做参数进行传递,比如:def f3(a:Int,b:Int,f:(Int,Int)=>Int)={f(a,b)}
此外,可以将匿名函数作为返回值返回
重点:④高阶函数。将函数作为参数传递的函数,即为高阶函数
- 匿名函数和高阶函数来自于面向函数的编程,面向函数的编程语言中,函数是一等公民,即函数可以赋值、传递、作为返回值返回。
- scala语言既是面向对象的语言,也是面向函数的语言。
- scala通用的化简规则:
①如果方法体{}只有一行代码,则{}可以省略
②当匿名函数作为参数传递时,匿名函数的参数类型可以省略
③当匿名函数作为参数传递时,如果匿名函数的参数列表只有一个参数,则参数列表的()可以省略
④最终极化简规则:通过_代替参数进行化简
成员函数和本地函数测试代码
class Person {
//成员函数
def say()={
println("hello")
//本地函数
def speak()={
println("world")
}
}
}
匿名函数和高阶函数测试代码
object Demo08 {
println("Welcome to the Scala worksheet") //> Welcome to the Scala worksheet
def f1(a:Int,b:Int)={
a+b} //> f1: (a: Int, b: Int)Int
//定义一个匿名函数
(a:Int,b:Int)=>{
a+b} //> res0: (Int, Int) => Int = <function2>
//将匿名函数作为参数进行赋值
val f2=(a:Int,b:Int)=>{
a+b} //> f2 : (Int, Int) => Int = <function2>
f2(2,3) //> res1: Int = 5
//将匿名函数作为参数进行传递
//定义了一个高阶函数
def f3(a:Int