作家
登录

Kotlin函数与函数式编程浅析

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

  1. add = lambda x, y:x+y 

第二个例子是给Int类定义了一个拓展函数,并且该拓展函数以中缀表达式表示,赐与了开辟者定义类似关键字的权力。

  1. [](int x, int y) -> intreturn x + y; } 

Kotlin中的lambda:

  1. var add = {x: Int, y: Int -> x + y} 

Kotlin 作为一个强类型说话照样比较简洁的。

  1. fun main(args: Array) { 
  2. val sumLambda = {a: Int, b: Int -> a + b} 
  3. sumLambda(1, 2) 
  4.  

它可以像函数一样应用()调用,在kotlin中操作符是可以重载的,()操作符对应的就是类的重载函数invoke()。

你还可以想下面如许定义一个变量:

  1. val numFun: (a: Int, b: Int) -> Int 
  1. fun main(args: Array) { 
  2.     isBiggerThan(2) 
  3.     isBiggerThan(2, 5) 
  4.     var s = "a".isLetter() 
  5.     var a = 1 add 2 
  6.  
  7. fun isBiggerThan(a: Int, b: Int = 0) { 
  8.     return a > b 
  9.  
  10. //拓展函数 
  11. fun String.isLetter(): Boolean { 
  12.     return matches(Regex("^[a-z|A-Z]$")) 
  13.  
  14. //拓展函数,中缀表达式 
  15. infix fun Int.add(x: Int): Int { 
  16.     return this + x 
  17.  
  1. fun main(args: Array) { 
  2.     val sumLambda = {a: Int, b: Int -> a + b} 
  3.     var numFun: (a: Int, b: Int) -> Int 
  4.     numFun = {a: Int, b: Int -> a + b} 
  5.     numFun = sumLambda 
  6.     numFun = ::sum 
  7.     numFun(1,2) 

  8.   推荐阅读

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

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


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

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

关键词: 探索发现

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

网友点评
自媒体专栏

评论

热度

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