博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Kotlin 中 有趣 好玩的高阶函数
阅读量:5828 次
发布时间:2019-06-18

本文共 1028 字,大约阅读时间需要 3 分钟。

package com.easy.kotlin// 简单好用的 Kotlin 类型别名, 我们使用 G,F,H 声明了3个函数类型(有点类似Java 中的接口类型的概念)typealias G = (String) -> Inttypealias F = (Int) -> Booleantypealias H = (String) -> Booleanfun main(args: Array
) { 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 != 0fun 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, 正好也就是传入的函数参数 transformfun
foo(x: Int = 1, transform: (Int) -> T = { it as T }) = transform(x)

运行上面的代码,输出:

[a, abc, abcde, abcdefg]a = 1abc = 3abcde = 5abcdefg = 72100

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



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

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


转载地址:http://dqodx.baihongyu.com/

你可能感兴趣的文章
EventSystem
查看>>
用WINSOCK API实现同步非阻塞方式的网络通讯
查看>>
玩一玩博客,嘿嘿
查看>>
P1352 没有上司的舞会
查看>>
ios11文件夹
查看>>
【HLOJ 559】好朋友的题
查看>>
Electric Fence(皮克定理)
查看>>
nvl 在mysql中如何处理
查看>>
MyEclipse 快捷键
查看>>
快速傅里叶变换FFT
查看>>
大数据常用基本算法
查看>>
JavaScript学习笔记(十三)——生成器(generator)
查看>>
hibernate保存失败
查看>>
MySQL增量订阅&消费组件Canal POC
查看>>
Sqlite多线程
查看>>
数据结构-时间复杂度
查看>>
对象与字符串相互转换
查看>>
[NOIp2017提高组]小凯的疑惑
查看>>
《C程序设计语言》练习1-5
查看>>
$\frac{dy}{dx}$ 是什么意思?
查看>>