Kotlin高级函数讲解

Kotlin的高级函数有很多;常用的有:forEach、map、flatMap、fold、reduce、filter、takeWhile、let、apply、use等;

下面就用代码给大家展示一下:

fun main(args: Array<String>) {
    val list= listOf(
            1..20,
            2..5,
            100..322

    )
    val faltlist=list.flatMap {it}

//    输出结果
    faltlist.forEach (::println)
//    输出求list里面的总和
    println(faltlist.reduce { acc, i -> acc + i })
//    调用下面求阶乘的方法0到6的阶乘
    (0..6).map(::factorial).forEach (::println)
//    得到阶乘以后我们还想求和
   println("阶乘的结果为:"+(0..6).map(::factorial).reduce { acc, i -> acc + i })
//   要是我们还想加个初始值的话就要用一个新的高阶函数标识符了
    println("添加了一个初始值后在想加集合:"+(0..6).map(::factorial).fold(5){acc, i -> acc + i})
//    用fola这个标识符还可以拼接字符串
    println("拼接的结果为:"+(0..6).map(::factorial).fold(StringBuilder()){
        acc, i -> acc.append(i).append(",")
    })
//    还有一个是foldRight就是倒序的显示出来
    println("倒序的结果为:"+(0..6).map(::factorial).foldRight(StringBuilder()){
        i,acc -> acc.append(i).append(",")
    })
//    遇到我们的判断条件就让它停下来的函数
    println( "遇到第一个符合条件的把前面的留下后面的不要:"+(0..6).map(::factorial).takeWhile {it % 2==1})
    //还有一个高阶函数是拿到集合的基数
    println("求的基数为:"+(0..6).map(::factorial).filter{it % 2 ==1})

//    连接字符串还可以更简单
    println("拼接字符串为:"+(0..8).joinToString(","))
}
//定义求阶乘的函数
fun factorial(n:Int):Int{
if (n==0)return 1
    return (1..n).reduce { acc, i -> acc * i }
}
这就是高级函数的代码展示,后续更新Kotlin学习。

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值