kotlin入门-高阶函数(filter,takeWhile,let,with,use)

本文介绍了Kotlin中的几个重要高阶函数,包括filter用于过滤集合元素,takeWhile根据条件截取序列,let进行作用域函数操作,with提供上下文操作,以及use在资源管理中的应用。通过实例解析,帮助Kotlin新手掌握这些高效且实用的函数。
fun main(args: Array<String>) {
    val arrays = (0..10)
    var arrays1 = (2..8)
    /**
     * 获得基数
     */
    arrays.filter { it % 2 == 1 }.forEach(::println)

    /**
     * takeWhile只获取满足条件之前的数据
     */
    arrays1.takeWhile { it % 2 == 0 }.forEach(::println)
}


@Pojos
data class WorlderCup(val name: String, val old: Int, val host: String) {
    fun getTeamCount() {
        println("${name}参赛队伍一共32支")
    }
}

fun main(args: Array<String>) {
    /**
     * 使用let正对于某个对象进行操作
     * 返回=》WorlderCup(name=俄罗斯世界杯, old=84, host=俄罗斯)
     */
    worldercup().let {
        println(it)
    }
    //返回=>10000
    100.let { println(it * 100) }

    /**
     * apply相当于this
     * 返回=>俄罗斯世界杯参赛队伍一共32支
     */
    worldercup().apply {
        getTeamCount()
    }
    /**
     * with把对象和this合并到一起
     */
    with(worldercup(), {
        println(name)
    })

    /**
     * 使用with函数返回=》阿根廷不要为我哭泣
     */
    var bufferread = BufferedReader(FileReader("worldcup.txt"))
    with(bufferread) {
        var line: String
        while (true) {
            line = readLine() ?: break
            print(line)
        }
        close()
    }

    /**
     * 读取BuffererReader
     */
//    println(bufferread.readText())

    /**
     * 返回的对象有closeable方法的话 调用use 就不用手动调用close方法
     */
    BufferedReader(FileReader("worldcup.txt")).use {
        var line: String
        while (true) {
            line = it.readLine() ?: break
            print(line)
        }
    }

}

fun worldercup(): WorlderCup {
    return WorlderCup("俄罗斯世界杯", 84, "俄罗斯")
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值