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
}

好了,结束了!

目录
相关文章
|
9月前
|
Java Kotlin
Kotlin中匿名函数(又称为Lambda,或者闭包)和高阶函数的详解
Kotlin中匿名函数(又称为Lambda,或者闭包)和高阶函数的详解
80 0
|
Java Kotlin 索引
【Kotlin 初学者】函数式编程
一、函数式编程概念 1.1 面向函数编程(FOP) 在函数式编程(FP)中,一切皆是函数。FP是关于不变性和函数组合的一种编程范式。 函数式语言提倡在有限的几种关键数据结构(如list、set、map)上,运用函数的组合(高阶函数)操作,自底向上地来构建世界。Kotlin支持多种编程范式,所以你可以混用面向对象编程和函数式编程范式来解决手头的问题。
124 0
【Kotlin 初学者】函数式编程
|
算法 Java Scala
用 Kotlin 的函数式编程 替代 GOF 设计模式
用 Kotlin 的函数式编程 替代 GOF 设计模式 函数式编程(FP) 《Kotlin极简教程》正式上架: 点击这里 > 去京东商城购买阅读 点击这里 > 去天猫商城购买阅读 非常感谢您亲爱的读者,大家请多支持!!!有任何问题,欢迎随时与我交流~ 值就是函数,函数就是值。
1526 0
在 Java 9 的JShell中 跟Kotlin 的REPL中尽情体验函数式编程乐趣吧
Java 9 JShell : 螢幕快照 2017-09-25 22.58.02.png jshell> List alphabet = List.
1170 0
kotlin极简教程 高阶函数 函数式编程章节节选
kotlin极简教程 高阶函数 函数式编程章节节选 KotlinChina编程社区 微博 《Kotlin极简教程》正式上架: 点击这里 > 去京东商城购买阅读 点击这里 > 去天猫商城购买阅读 非常感谢 if (boy) { 帅气英俊潇洒} else { 魔鬼身材天使脸蛋美丽动人女神气质} 的您。
1046 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. 函数式编程概述 从本质上来说, 程序就是一系列有序执行的指令集合。
1214 0
《Kotlin极简教程》第六章 Kotlin函数式编程(FP)
Kotlin对函数式编程的实现恰到好处。 正式上架:《Kotlin极简教程》Official on shelves: Kotlin Programming minimalist tutorial 京东JD:https://item.
974 0
|
20小时前
|
移动开发 监控 Android开发
构建高效Android应用:Kotlin协程的实践与优化
【5月更文挑战第12天】 在移动开发领域,性能与响应性是衡量一个应用程序优劣的关键指标。特别是在Android平台上,由于设备的多样性和系统资源的限制,开发者需要精心编写代码以确保应用流畅运行。近年来,Kotlin语言因其简洁性和功能性而广受欢迎,尤其是其协程特性,为异步编程提供了强大而轻量级的解决方案。本文将深入探讨如何在Android应用中使用Kotlin协程来提升性能,以及如何针对实际问题进行优化,确保应用的高效稳定执行。
|
1天前
|
移动开发 API Android开发
构建高效Android应用:Kotlin协程的实践指南
【5月更文挑战第11天】 在移动开发领域,性能优化和资源管理是至关重要的。特别地,对于Android开发者来说,合理利用Kotlin协程可以极大地改善应用的响应性和稳定性。本文将深入探讨Kotlin协程在Android中的实际应用,包括它们如何简化异步编程模型、提高UI线程的响应性,以及减少内存消耗。我们将通过具体案例分析,了解如何在实际项目中有效地使用协程,从而帮助开发者构建更加高效的Android应用程序。