Lambda表达式

2020-05-15  本文已影响0人  没有故事的男童鞋

Kotlin高阶函数--Higher-Order Function

参数或者返回值为函数类型的函数,在Kotlin中被称为高阶函数。

高阶函数概念源自数学中的高阶函数-在数学中,如果一个函数使用函数作为他的参数或者结果,则他被称为高阶函数。

Java中函数的参数不能是函数

Kotlin中函数可以含有函数类型的参数,且函数的返回值也可以是函数类型

SAM接口--Single Abstract Method

只有一个抽象方法的接口简称SAM接口

函数类型的参数示例

双冒号::method是什么?(函数引用Function Reference)

::method这种写法叫做函数引用;(method在加上::就变成了一个和函数具有相同功能的对象了)

Kotlin中的匿名函数(其实是一个对象,并不是一个函数)

简单来说就是没有名字的函数,本质是一个对象

a(fun(param: Int): String {
    return param.toString()
});
val d = fun(param: Int): String {
    return param.toString()
}
//错误写法,左右两边都有名字,Kotlin是不允许的
val d = fun a(param:Int):String{
    
}

Java中和Kotlin中接口回调设计及使用对比

Lambda表达式

Kotlin里的函数和匿名函数以及Lambda表达式的本质

它们都是函数类型的对象

Kotlin中的Lambda和Java8的Lambda区别

Java从8开始引入了Lambda支持,主要作用是对于单抽象方法的接口,Java 8允许你用Lambda表达式来创建匿名类对象,但是它本质上还是创建了一个匿名类对象,只不过是一种简化的写法。

Kotlin中的Lambda是实实在在的函数类型的对象,功能更强,写法更多更灵活,

总结

上一篇 下一篇

猜你喜欢

热点阅读