Kotlin 函数式编程之 Lambda 与 高阶函数《Kotlin 极简教程》Kotlin 开发者社区

HigherOrderFunctions&Lambda.gif

........

摘自:

《Kotlin 极简教程》

源代码:

package com.light.sword.coursera

val lengthFun = fun(s: String): Int = s.length //lengthFun is a fun variable
val isOddFun = fun(x: Int): Boolean = x % 2 != 0

fun compose(length: (String) -> Int, isOdd: (Int) -> Boolean): (String) -> Boolean {
    return { x -> isOdd(length(x)) }
}

fun main(args: Array<String>) {
    val words = listOf("Hello", "U", "Kotlin", "Java")
    val result = words.filter(compose(lengthFun, isOddFun)) // Use lengthFun directly
    println(result) // [Hello, U]
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java技术分享

xml解析技术概述和使用Jaxp对xml文档进行dom解析

用dom和sax对xml文档进行解析,可以使用已开发的xml解析开发包,我们直接调用即可。xml解析开发包有:Jaxp(最差)、Jdom(一般)、dom4j(最...

23780
来自专栏noteless

[二十四]JavaIO之PrintWriter

他与PrintStream的逻辑上功能目的是相同的--他们都想做同一件事情--更便捷的格式化打印输出

49520
来自专栏吴伟祥

Java中Interface的方法和常量的默认访问修饰符

Java中Interface常量的默认访问修饰符为:public static final 

87330
来自专栏Java成神之路

java之IO

    java.io包中定义了多个流类型(类或抽象类)来实现输入/输出功能,可以从不同角度对其分类:

12730
来自专栏专注 Java 基础分享

Java 字节流操作

     在java中我们使用输入流来向一个字节序列对象中写入,使用输出流来向输出其内容。C语言中只使用一个File包处理一切文件操作,而在java中却有着...

31990
来自专栏冷冷

【jfinal】扩展JFIANL 支持加载jar包中SQL模板

扩展 ActiveRecordPlugin 支持加载jar包中SQL模板 jfinal3.1 中新增了IStringSource ,这个接口方便大家扩展SQL...

218100
来自专栏java闲聊

JDK8-Lambda表达式集合操作

public static List<Dish> toLists(){ return Arrays.asList( new...

17930
来自专栏个人随笔

Java 持久化操作之 --io流与序列化

1)File类操作文件的属性 1.File类的常用方法 ? 1. 文件的绝对完整路径:getAbsolutePath() 文件名:getName() 文件相对路...

30390
来自专栏10km的专栏

fastjson:javabean按字段(field)序列化存储为Map并反序列化

大部分json工具对java对象整体序列化都提供了简单的调用方式,以fastjson为例: Model model = new Model(); String ...

40050
来自专栏Android Note

介绍Kotlin第二部分(翻译篇)

15340

扫码关注云+社区

领取腾讯云代金券