作家
登录

Kotlin函数与函数式编程浅析

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

  •     cout << "x:" << x << " y:" << y << endl; //x:20 y:10 
  •  
  • void swap(int &x, int &y) { 
  •     int tmp = x; 
  •     x = y; 
  •     y = tmp; 
  •  
    1. val kv = mapOf("a" to 1, "b" to 2) 

    这里的to就是一个中缀表达式,定义如下:

    1. public infix fun<A, B> A.to(that: B): Pair<A, B> = Pair(this, that) 

    Pair就是Map中存的对象,所以你也可以如许创建

    1. val kv = mapOf(Pair("a", 1), Pair("b", 2)) 

    在Python中如不雅我们想让函数返回多个值,可以返回一个元组,Kotlin基于解构原则也可以实现类似的功能:

    1. fun main(args: Array) { 
    2.     val (indexcount) = findWhere("abcabcabcabc"'c'
    3.  
    4. fun findWhere(str: String, findChar: Char): Pair<IntInt> { 
    5.     var index = -1 
    6.     var count = 0 
    7.     for ((i, v) in str.withIndex()) { 
    8.         if (v == findChar) { 
    9.             if (index == -1) { 
    10.                 index = i 
    11.             } 
    12.             ++count 
    13.         } 
    14.     } 
    15.     return Pair(indexcount
    16.  

    自定义对象若何支撑解构请查看官方文档,map支撑解构,所以可以像下面如许遍历:

    1. for ((k, v) in map) { 
    2.     print("$k -> $v, "
    3.  

    高阶函数与 Lambda 表达式

    “Lambda 表达式”(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于个中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数。Lambda表达式可以表示闭包(留意和数学传统意义上的不合)。


      推荐阅读

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

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


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

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

    关键词: 探索发现

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

    网友点评
    自媒体专栏

    评论

    热度

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