Kotlin 中 有趣 好玩的高阶函数

简介: package com.easy.kotlin// 简单好用的 Kotlin 类型别名, 我们使用 G,F,H 声明了3个函数类型(有点类似Java 中的接口类型的概念)typealias G = (String) -> Inttypealia...
package com.easy.kotlin

// 简单好用的 Kotlin 类型别名, 我们使用 G,F,H 声明了3个函数类型(有点类似Java 中的接口类型的概念)
typealias G = (String) -> Int
typealias F = (Int) -> Boolean
typealias H = (String) -> Boolean

fun main(args: Array<String>) {
    val h = h(::g, ::f)
    val strList = listOf("a", "ab", "abc", "abcd", "abcde", "abcdef", "abcdefg")
    // 非常好用的流式 API filter,flat,map 等等
    val mstrList = strList.filter(h)
    println(mstrList)
    mstrList.forEachIndexed { index, value ->
        println("$value = ${value.length}")
    }

    println(foo(1, { it -> it + 1 }))
    println(foo(10, { it -> it * it }))
}

// 简单直接的函数定义
fun f(x: Int) = x % 2 != 0

fun g(s: String) = s.length
// 简单优雅的高阶函数定义(复合函数): compose(f, g) = f(g(*))
fun h(g: G, f: F): H {
    return { x -> f(g(x)) }
}

// 这个foo函数类型是:  (Int) -> T, 正好也就是传入的函数参数 transform
fun <T> foo(x: Int = 1, transform: (Int) -> T = { it as T }) = transform(x)

运行上面的代码,输出:

[a, abc, abcde, abcdefg]
a = 1
abc = 3
abcde = 5
abcdefg = 7
2
100

具体的代码,参照注释阅读即可。



KotlinChina编程社区 微博

《Kotlin极简教程》正式上架:

点击这里 > 去京东商城购买阅读

点击这里 > 去天猫商城购买阅读

非常感谢您亲爱的读者,大家请多支持!!!有任何问题,欢迎随时与我交流~


相关文章
|
8月前
|
Java Kotlin
Kotlin中匿名函数(又称为Lambda,或者闭包)和高阶函数的详解
Kotlin中匿名函数(又称为Lambda,或者闭包)和高阶函数的详解
76 0
|
Serverless Kotlin
Kotlin | 高阶函数reduce()、fold()详解
在 `Kotlin` 中,`reduce()` 和 `fold()` 是函数式编程中常用的高阶函数。它们都是对集合中的元素进行聚合操作的函数,将一个集合中的元素缩减成一个单独的值。它们的使用方式非常相似,但是返回值略有不同
106 0
|
Java C++ Kotlin
【Kotlin】Kotlin 高阶函数 ( 高阶函数当做参数 | 高阶函数定义 | 高阶函数调用 )
【Kotlin】Kotlin 高阶函数 ( 高阶函数当做参数 | 高阶函数定义 | 高阶函数调用 )
121 0
|
Kotlin
Kotlin常用的高阶函数(Filter、TakeWhile、Let、Apply、With......)
一、Filter package net.println.kotlin.chapter5.builtins /** * @author:wangdong * @description:Kotlin常见的高阶函数 */ fun main(args: Array) { //求(0.
2573 0
|
Kotlin
kotlin高阶函数开发一个程序,统计文本中字符串出现的个数
一、高阶函数是Kotlin的核心部分,下面来使用下高阶函数写一个程序 注意:我这里的File使用的是:与src同级的文件,你可以根据自己的需要,修改文件地址 代码实例 package net.
1303 0
|
Kotlin
Kotlin高阶函数概念
一、高阶函数的基本概念 1.传入或者返回函数的函数(传入是函数,返回也是函数) 2.函数引用最常见的方式,”:: println” 3.
908 0
|
Java Kotlin
Kotlin常用的高阶函数(ForEach、Map、Flatmap、Fold、Reduce......)
一、ForEach 类型于Java的传统的写法 package net.println.kotlin.chapter5.
10062 2
kotlin极简教程 高阶函数 函数式编程章节节选
kotlin极简教程 高阶函数 函数式编程章节节选 KotlinChina编程社区 微博 《Kotlin极简教程》正式上架: 点击这里 > 去京东商城购买阅读 点击这里 > 去天猫商城购买阅读 非常感谢 if (boy) { 帅气英俊潇洒} else { 魔鬼身材天使脸蛋美丽动人女神气质} 的您。
1046 0
|
20天前
|
移动开发 Java Android开发
构建高效Android应用:探究Kotlin与Java的性能差异
【4月更文挑战第3天】在移动开发领域,性能优化一直是开发者关注的焦点。随着Kotlin的兴起,其在Android开发中的地位逐渐上升,但关于其与Java在性能方面的对比,尚无明确共识。本文通过深入分析并结合实际测试数据,探讨了Kotlin与Java在Android平台上的性能表现,揭示了在不同场景下两者的差异及其对应用性能的潜在影响,为开发者在选择编程语言时提供参考依据。