//在方法名后加" _"
var a: String => Unit = method01 _ //为一个函数变量//mym的类型为() => Unit//当我们在函数当中加了一个参数的时候,变量的类型就会变成(String) => Unit//当我们在函数当中加上返回值类型的时候,变量的类型就会变成(String) => String// =>前面的东西表示该函数的参数类型// =>后面的东西表示该函数的返回类型//当我们把一个函数赋值给一个变量的时候,该函数并没有执行// 如果出现=>的类型,都是高阶函数println(mym)//如何让我们的函数执行//用变量名称,像普通方法一样去调用
2.匿名函数
//创建一个匿名函数//参数与方法体用=>连接
var mymethod=(name:String)=>{
println(name)}println(mymethod)//执行函数mymethod("hello")//我们在使用匿名函数的时候,如果需要返回值的话,直接写到最后一行就可以了。如果我们在=前面指定类型的话,会报错
var method02=(name:String)=>{
println(name)"abc"}
val str: String =method02("zzzzz")println(str)
3.带函数参数的函数
Scala中可以直接将某个函数传入其它函数,作为参数
接收其他函数作为参数的函数,也被称作:高阶函数(higher-order function)
def test01(m:(String,Int)=>String): String ={
println(m+"666")
m.apply("化妆品",11)"赵子龙"}
def test02(name:String,age:Int):String ={
println(name+age)"test02"}
var o = test02 _ //test02println(o("窗帘",5))//窗帘5//test02
val test02_result =test01(o)//<function2>666//化妆品11println(test02_result)//赵子龙
4.返回一个函数的函数
创建一个函数,让函数的返回值为一个函数
我们不能在这里指定返回类型,而是直接使用=
使用=表示将最后一行作为返回值
//将函数作为返回值
def test03():(String,Int)=> Unit ={
println("test03")(name:String,age:Int)=>{
println(name+age+"!!!!")}}
val function02:(String, Int)=> Unit =test03()println(function02("水杯",1221))//test03//水杯1221!!!!
5.高阶函数的类型推断
def method01(m:(String)=>String): Unit ={
}
def method02(m:(String,Int)=>String): Unit ={
}
def main(args: Array[String]): Unit ={
//完整写法【如果方法体只是一行代码的话,{}可以省略】method01((name:String)=
高阶函数1.将变量作为函数 //在方法名后加" _" var a: String => Unit = method01 _ //为一个函数变量 //mym的类型为() => Unit //当我们在函数当中加了一个参数的时候,变量的类型就会变成(String) => Unit //当我们在函数当中加上返回值类型的时候,变量的类型就会变成(String) =&g...