1. kotlin 闭包简单例子

发布时间:2019-11-19 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了1. kotlin 闭包简单例子脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

闭包

任何支持函数式编程的语言都都支持闭包

闭包的作用
  1. 让函数成为编程语言中的一等公民
  2. 让函数具有对象所有的能力(封装)
  3. 让函数具有状态

很明显的是java不支持闭包

kotlin的闭包(每个java程序员都想要的语言特性)

为什么需要函数成为一等公民

@L_126_2@ men are created equal

java中对象是一等公民,对象有状态

函数是没有状态的,调用完毕后,里面的数据会被回收,不会被保存

java代码

public class test {      public void test(){          public void test(){          }     }  }  方法里面 放方法。报错,java没办法理解这种代码,在java中 函数是二等公民 二等公民是不可以出现在函数里面的。他只能出现在类的定义里

kotlin里面

函数和普通变量一样是一等公民,他可以拥有一等公民拥有的所有主权,。

fun test(){           VAR a=3      fun test1(){                } }

1.好处,可以在函数的内部声明函数

  1. 函数参数可以是函数,函数的返回值可以是函数
  2. 这就是函数编程的特点 。

java 的方法里面

传递的参数只能是数据类型,我们定义的对象和基本数据类型
输出的呢 也是数据类型

kotlin 函数是一等公民

传递是函数,传递的数据

普通函数和闭包函数

普通函数不携带状态,调用完毕后里面所有的内容就会被释放掉。
下次调用的时候,里面的变量会再次去声明

fun test(){     var a=3     println(a); }  fun main(args: Array<String>) {      test() }

函数不携带状态,维护起来就需要额外的成本,比如我们需要声明一个额外的变量来记录他的状态。

闭包让函数可以携带状态。

fun test():()->Unit{     var a=3 //状态     return  fun(){         a++;         println(a);     } }  fun main(args: Array<String>) {     var t=test()     t();     t();     t(); }

我们定义了一个函数,返回值是函数 。

  1. 函数不写返回值,返回值为空的的时候默认为Unit,Unit可以省略不写
  2. 当返回值不为空的时候必须写出来

fun test():()->Unit

:后面写小括号表名 函数需要返回一个函数,()里面可以写参数, 小括号后面是函数的返回值类型,我们不可以写:号了,改为->,但返回值的类型为空的时候也必须写Unit了,不可以省略。

闭包总结

函数里面声明函数,函数里面返回函数,就是闭包

1.函数内部的局部变量的状态保存住了 (变量的值就是状态)

2.a 被隐藏起来了,但我们调用函数可以改变状态,或者获得a的值,这点就是函数的面向对象,让函数具有封装的能力,让函数既有了状态。

脚本宝典总结

以上是脚本宝典为你收集整理的1. kotlin 闭包简单例子全部内容,希望文章能够帮你解决1. kotlin 闭包简单例子所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。