1、先定义一个方法,如下
def m5(f:(Int,Int)=>Int)=f(4,5)
解释:
定义一个方法名叫m5,入参是一个函数,
f有人叫签名,其实可以理解成Java中的形参的参数,
(Int,Int)=>Int可以理解为Java中形参的类型
f(4,5)是方法体的实现,和Java中方法的实现是一样的
总结:
1)、这个方法的意思是无论传进来什么函数,都用3,4传进去搞。
比如传进来的函数是2个数相除的,那么就执行3/4;
如果传进来的函数是2个数相乘的,那么则3*4;
总之就是我是非常灵活的,无论你传啥进去,我都能搞。
2)、形参中定义的f,既是类Java中的形参参数,同时也可以当作函数名称,在函数体中引用
2、定义一个函数,一会要将这个函数传进去
val f1=(x:Int,y:Int)=>x.*(y)
解释:
这里就是一个列出了函数要具体干的事,就是你传2个数,我把这2个数相乘
3、调用
val r7=m5(f1)
println(r7)
4、打印结果