Kotlin - 高阶函数

Posted Android干货程序员

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kotlin - 高阶函数 相关的知识,希望对你有一定的参考价值。

函数入门


今天我们来讲解Kotlin的函数一说到函数,很多同学可能脑子里面是这样的一个概念。


我们高中数学经常与函数打交道,那什么是偶函数,什么是奇函数呢?这个图大家还有印象吧?

Kotlin - 高阶函数 (一)

这个就是我们见过的,即函数,这个就是我们见过的偶函数。

Kotlin - 高阶函数 (一)

我们也学过三角三角函数,幂函数.

Kotlin - 高阶函数 (一)


程序语言中的函数


程序语言中的函数呢其实概念比较简单,在计算机语言里面,函数实际上是计算机执行命令的单元,那我们接下来呢来给大家举个例子,大家都玩过乐高这样的小玩具,有些同学说他没有玩过,没玩过,也见过这样的小玩具对吧?

Kotlin - 高阶函数 (一)

那这里面的小玩具实际上都是有一些小的模块组成的,利用这些小模块,我们最终可以组合成一个复杂的玩具

Kotlin - 高阶函数 (一)

这个玩具实际上就是由刚才这些小模块给组成的,计算机程序也是有小的可执行性的单员给组成起来,把小的模块组合在一起,就构成了我们的计算机程序。

函数的概念


我们现在来回顾一下函数的概念,乐高里面的积木它是一个小片段,这些小片段呢它是有接口的,可以插,可以被插,我们看一下这上面凸起来的地方呢可以插入到另外一个玩具的背面,每个玩具的背面呢还留有接口,可以被别的模块给插上。

Kotlin的高级函数实战(案例讲解)


首先,我们来到非诚勿扰的舞台,这是全国一个较大的交友征婚的电视栏目。

Kotlin - 高阶函数 (一)

首先来到我们节目现场的是24位漂亮的女嘉宾,我们看一下本节目由黑马程序员赞助,我们有请24位单身女嘉宾,这就是我们的单身女嘉宾,那他们的名字分别是什么呢?我们来看一下。

Kotlin - 高阶函数 (一)

Kotlin - 高阶函数 (一)


女嘉宾的资料有来自山东18岁的伊儿,身高1米68,有笑笑,来自河南身高1米七五十九岁,这是我们女嘉宾24位漂亮女嘉宾的个人资料,那这些资料看完之后,接下来我们就有请我们的男嘉宾出场了,第一位男嘉宾是河南的,只要找河南的妹子,我们来去瞧一下这些女嘉宾的资料,哪些女嘉宾是来自河南的,我们仔细看了一下,好像有笑笑,还有喵喵这个是来自河南的,那目前是由于我们的用户资料很少,那假设用户资料很多的时候,我们是不是应该有一段代码,把来自于河南的女嘉宾的资料都给他过滤出来,那么废话不多说,直接上代码,创建出来一个新的工程,这个工程呢我就直接给他起名就叫非诚勿扰,把工程创建出来,那工程已经创建好了。

Kotlin - 高阶函数 (一)


我首先把一个data class给定出来,她就是我们的女嘉宾,每位女嘉宾大家想一下是不是有一个姓名对吧,姓名这是一个字符串类型的。接下来我们来看着每一位女嘉宾,她还有什么?有他的是哪个地方的,身高是多少?年龄是多少对吧,那我们要把他的年龄身高给定出来。年龄我们定义应该是一个int类型,身高应该也是一个int类型,这些女生的资料是不是应该在数据库里,我们目前暂不使用数据库,可用代码来去模拟一下所有的女选手的信息或定一个变量,这个变量我们就给他起明白叫非诚勿扰数据库。

第一位男嘉宾他是河南的,他只想找来自河南的妹子好,那我们看一下怎么去写。


首先我所有的女生是不是都是在这个非诚勿扰的数据库里啊对吧?

Kotlin - 高阶函数 (一)

我们运行一下程序,看一下执行的结果,那大家可以看到第一个男嘉宾我们已经满足他需求了。

运行结果:

Kotlin - 高阶函数 (一)


来自于河南19岁的美女笑笑,还有来自于河南27岁的美女喵喵,这两位女生满足了第一位男嘉宾的需求这个代码写完了,有一些同学以前是JAVA程序员,觉得这个代码毫无任何新奇而言,其实作为JAVA程序员看这种逻辑是司空见惯的,写起来JAVA代码就是这么啰嗦,我们一会给大家演示Kotlin代码是多么的方便,有什么的优点,第一位男嘉宾的需求我们就满足了,那这个男嘉宾,他的需求实际上是想把某一个地区的妹子给过滤出来,那既然这是一个很常见的需求,我们是不是可以开发出来一个方法对吧,开发出来一个方法,然后把这个需求给满足一下,

Kotlin - 高阶函数 (一)

Kotlin - 高阶函数 (一)

结果输出:


大家看到广东的这几个妹子都已经打印出来了。


以上是关于Kotlin - 高阶函数 的主要内容,如果未能解决你的问题,请参考以下文章

Kotlin小知识之高阶函数

kotlin学习之高阶函数及常用基本高阶函数

七,Kotlin常见高阶函数用法

Kotlin高阶函数内联函数以及集合变换序列

Kotlin用高阶函数处理集合数据

Kotlin之高阶函数