Kotlin闭包(支持函数式编程不再是梦想)

简介: 一、闭包 闭包目前非常火,因为闭包的出现,现在支持函数式编程就不再是梦想了。 二、什么是闭包 1.函数的运行环境 2.
+关注继续查看

一、闭包
闭包目前非常火,因为闭包的出现,现在支持函数式编程就不再是梦想了。

二、什么是闭包
1.函数的运行环境
2.持有函数运行状态
3.函数内部可以定义函数
4.函数内部也可以定义类

三、来看一下小例子

package net.println.kotlin.chapter5.closure

import java.util.*

/**
 * @author:wangdong
 * @description:
 */
val string = "HelloWorld"

/**定义一个函数*/
fun makeFun():() -> Unit{
    var count = 0
    //返回一个匿名函数,打印一下
    return fun(){
        println(++count)
    }
}

/**再定义个fibonacci方法,斐波拉契序列*/
fun fibonacci(): Iterable<Long>{
    var first = 0L
    var second = 1L
    return Iterable {
        object : LongIterator(){
            override fun nextLong(): Long {
                val result = second
                second += first
                first = second - first
                return result
            }

            override fun hasNext() = true

        }

    }
}

fun main(args: Array<String>) {
    val x = makeFun()
    //每调一次count就会加一
    x()
    for (i in fibonacci()){
        if (i > 100)break
        println(i)
    }

    //第一步add5中x等于13
    //第一次传13进来,x=13,返回回去add5中x=13
    val add5 = add(13)
    //第二步中,y等于56,这个时候,要返回x+y了
    //最后13+56=69
    println(add5(56))
    //69
}

//fun add(x: Int) = fun(y: Int) = x + y
//函数套函数
fun add(x: Int):(Int) -> Int{
    //x=13
    return fun(y:Int):Int{
        //y=56
        return x+y
    }
    //最终69
}

好了,结束了!

目录
相关文章
|
3月前
|
SQL Java 测试技术
Android的room数据库使用小结(kotlin)
Android的room数据库使用小结(kotlin)
|
3月前
|
XML 安全 Java
使用Kotlin构建Android应用:现代化的开发语言
随着移动应用开发的不断发展,开发人员有了更多选择来构建功能强大、高效和可维护的Android应用程序。其中一种备受推崇的选择就是使用Kotlin作为开发语言。Kotlin是一种现代化的编程语言,它为Android开发带来了许多优势和便利。
|
4月前
|
Java Android开发 Kotlin
开心档-Kotlin Android 环境搭建
【摘要】 在开始编辑此文件时,Android Studio 会提示当前工程还未配置 Kotlin,根据提示完成操作即可,或者可以在菜单栏中选择 Tools 选择配置时有如下对话框,选择已安装的最新版本即可。 Kotlin 配置完成后,应用程序的 build.gradle 文件会更新。 你能看到新增了 apply plugin: 'kotlin-android' 及其依赖。
|
Java Kotlin 索引
【Kotlin 初学者】函数式编程
一、函数式编程概念 1.1 面向函数编程(FOP) 在函数式编程(FP)中,一切皆是函数。FP是关于不变性和函数组合的一种编程范式。 函数式语言提倡在有限的几种关键数据结构(如list、set、map)上,运用函数的组合(高阶函数)操作,自底向上地来构建世界。Kotlin支持多种编程范式,所以你可以混用面向对象编程和函数式编程范式来解决手头的问题。
97 0
【Kotlin 初学者】函数式编程
|
算法 Java Scala
用 Kotlin 的函数式编程 替代 GOF 设计模式
用 Kotlin 的函数式编程 替代 GOF 设计模式 函数式编程(FP) 《Kotlin极简教程》正式上架: 点击这里 > 去京东商城购买阅读 点击这里 > 去天猫商城购买阅读 非常感谢您亲爱的读者,大家请多支持!!!有任何问题,欢迎随时与我交流~ 值就是函数,函数就是值。
1499 0
在 Java 9 的JShell中 跟Kotlin 的REPL中尽情体验函数式编程乐趣吧
Java 9 JShell : 螢幕快照 2017-09-25 22.58.02.png jshell> List alphabet = List.
1142 0
kotlin极简教程 高阶函数 函数式编程章节节选
kotlin极简教程 高阶函数 函数式编程章节节选 KotlinChina编程社区 微博 《Kotlin极简教程》正式上架: 点击这里 > 去京东商城购买阅读 点击这里 > 去天猫商城购买阅读 非常感谢 if (boy) { 帅气英俊潇洒} else { 魔鬼身材天使脸蛋美丽动人女神气质} 的您。
1013 0
《Kotlin 程序设计》第六章 Kotlin 函数式编程(FP)
第六章 Kotlin 函数式编程(FP) 正式上架:《Kotlin极简教程》Official on shelves: Kotlin Programming minimalist tutorial 京东JD:https://item.jd.com/12181725.html 天猫Tmall:https://detail.tmall.com/item.htm?id=558540170670 1. 函数式编程概述 从本质上来说, 程序就是一系列有序执行的指令集合。
1184 0
《Kotlin极简教程》第六章 Kotlin函数式编程(FP)
Kotlin对函数式编程的实现恰到好处。 正式上架:《Kotlin极简教程》Official on shelves: Kotlin Programming minimalist tutorial 京东JD:https://item.
940 0
推荐文章
更多