作家
登录

Kotlin函数与函数式编程浅析

作者: 来源: 2017-06-09 05:39:13 阅读 我要评论

  •  
  • fun sum(a: Int, b: Int): Int { 
  •     return a + b 
  •  
  • 可以看到这个变量可以等于一个lambda表达式,也可以等于另一个lambda表达式变量,还可以等于一个通俗函数,然则在函数名前须要加上(::)来获取函数引用。

    这个类似C++中的函数指针,然而在Python中可以直接应用函数名作为函数引用,下面是c++函数指针的例子:

    回到Kotlin,我们还可以将一个函数传递给另一个函数,比如:

    1. //函数参数 
    2. fun  doMap(list: List, function: (it: T) -> Any) { 
    3.     for (item in list) { 
    4.         function(item) 
    5.     } 
    6.  

    Python中的lambda表达式:

    第一个参数是一个List,第二个参数是一个函数,目标就是将List中的每一个元素都履行一次序递次二个函数。应用办法如下:

    1. val strList = listOf("h" ,"e""1""a""b""2"" """"c""5""7""F"
    2. doMap(strList, {item ->print("item: ${upperLetter(item)}, ") }) 
    3.  
    4. fun upperLetter(item: String): String { 
    5.     if (item.isLetter()) { 
    6.         return item.toUpperCase() 
    7.     } 
    8.     return item 
    9.  

    第二个参数直接传进去了一个lambda表达式,当然也可以传一个函数引用:

    1. val strList = listOf("h" ,"e""1""a""b""2"" """"c""5""7""F"
    2. doMap(strList, ::printUpperLetter) 
    3.  
    4. fun printUpperLetter(item: String) { 
    5.     print("item: ${upperLetter(item)}, "
    6.  
    7. fun upperLetter(item: String): String { 
    8.     if (item.isLetter()) { 
    9.         return item.toUpperCase() 

        推荐阅读

        Netflix如何在上万台机器中管理微服务?

      如不雅办事调用的缺点率高于预先设置的缺点率。 Circuit-breaker 的状况会大年夜 CLOSED 变成 OPEN(熔断状况)。 当 Circuit-breaker 状况为 OPEN 时,所有进来的请求会被阻拦。 过一段时光,会让一些单>>>详细阅读


      本文标题:Kotlin函数与函数式编程浅析

      地址:http://www.17bianji.com/lsqh/35653.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)