Kotlin学历之常用函数

作者: i校长 | 来源:发表于2017-07-08 14:40 被阅读285次

简述

经过一段时间的应用,以及刚刚发布的六月份语言排行榜,kotlin成功的进入的前五十,而且潜力无限,更加坚定的认为:学习这么语言是值得的,只会更好。kotlin的特点特色基本学完了,剩下的就是实践过程中的应用,然后再学习一些常用的api,再深入一点可以研究下原理,下面介绍下常用的函数,以便以后用到的时候能运用自如,来体会高级语言带来的便利。

filter

filter 函数用来过滤符合条件的函数,它是数组、集合、序列等数据结构的扩展函数。

首先看下源码

inline fun Array<out T>.filter( predicate : (T)->Boolean) : List <T>{
         return filterTo(ArrayList<T>() , predicate)
}

filter 接受 一个函数,该函数有个参数T,返回boolean类型 ,最后返回的boolean类型的值传给filterTo函数作为判断条件。只要为true就会返回到目标List中。

例:过滤完后返回偶数集合。

val listA = intArrayOf(0,1,2,3,4,5)

listA.filter{ it % 2 == 0}  // [0,2,4]

map

map函数把一个值映射为另一个值,直接看源码

inline fun Array<T,R> .map(transform:(T)->R) : List <R>{
          return mapTo( ArrayList<R>(size) , transform)
}

map函数同样也是接受一个函数transform, transform将map中的T类型转换成R,最后交给mapto函数去轮询执行transform。最终将整个集合都转换成R的map.

注意: 这里的map 跟java的Map不要联想到一起,这只是对Array的扩展,是将 List<T>转换成 List <R> 集合

例:直接上图,用文字举例总感觉没说服力

map

reduce

reduce函数 是将list中的元素 汇总,看源码

public inline fun <S, T: S> Iterable <T>.reduce(operation: (acc: S,T) -> S): S {

      val iterator = this.iterator()

       if( ! iterator.hasNext() ) throw UnsupportedOperationException("Empty collection can't be reduced.")

       var accumulator: S = iterator.next()

        while( iterator.hasNext() ) {

                   accumulator = operation(accumulator,iterator.next())

         }

         return accumulator

}

reduce 函数接受一个类型为 (S, T) -> S 类型的函数 operation,返回值为 S 类型,其中 T 是数组元素的类型,S 是 T 的同一类型或父类型,reduce 会先取出数组的第一个元素作为初始化值,然后把这个值作为参数与下一个元素一起执行操作,将结果再次赋给这个值。完成所有元素的迭代归约后输出结果

注意: reduce 函数会在没有元素可归约时抛出 UnsupportedOperationException

例子:该函数经常与map函数一起用,下面将每个元素的第一个字母取出来 组成一个List 后 再 拼接在一起。

reduce

总结

这三个函数算是应用最为频繁的,在实际开发中,经常会遇到,所以要好好掌握,kotlin语言支持函数式编程,这三个应该是最好的体现,不知道什么时候大家又开始函数式编程,面向对象真的好吗,这个是值得咱们程序员认真思考的问题。今天到此结束,后会有期。

相关文章

  • Kotlin学历之常用函数

    简述 经过一段时间的应用,以及刚刚发布的六月份语言排行榜,kotlin成功的进入的前五十,而且潜力无限,更加坚定的...

  • Kotlin学习之常用高阶函数:filter

    Kotlin学习之常用高阶函数:filter Kotlin高阶函数一般是数组、集合、序列等数据结构的扩展函数,接收...

  • Kotlin学习之Set常用集合工具函数

    Kotlin学习之Set常用集合工具函数 Kotlin中定义了很多工具函数,用来创建不同类型的Set,下面是一些常...

  • Kotlin学习之Map常用工具函数

    Kotlin学习之Map常用工具函数 kotlin.collections.Maps.kt文件中定义了许多针对Ma...

  • Kotlin学习之定义函数

    Kotlin学习之定义函数 @(Kotlin学习) 一、定义函数 Kotlin中的函数比Java中的方法更灵活,用...

  • Kotlin之let,apply,run,with等函数区别2

    Kotlin之let,apply,run,with等函数区别2 Kotlin之let,apply,run,with...

  • kotlin常用函数

    扩展函数 声明一个扩展函数,我们需要用一个 接收者类型 也就是被扩展的类型来作为他的前缀 其实就是通过import...

  • kotlin常用函数

    repeat 代码块重复执行 with 对当前类操作,内部操作 let 相当于return小函数 apply fu...

  • Kotlin学习目录

    Kotlin学习目录 一、Kotlin学习之函数和变量二、Kotlin学习之类和属性三、Kotlin学习之枚举和W...

  • kotlin 运行时检查

    kotlin 运行时检查 上次写了几个常用的Kotlin标准函数(let、run、also、apply),今天再研...

网友评论

    本文标题:Kotlin学历之常用函数

    本文链接:https://www.haomeiwen.com/subject/odndhxtx.html