6.常见高阶函数5

2020-07-28  本文已影响0人  学吉他的袁先生

with操作符 也是将作用域转移到对象内部,对象不能为空

val bufferedReader = BufferedReader(FileReader("hello.txt"))
with(bufferedReader){
    var line: String?
    while (true){
        //readLine是bufferedReader 的方法
        line = readLine()?: break
        println(line)
    }
    close()
}

use操作符 针对流操作,自带流关闭方法

BufferedReader(FileReader("hello.txt")).use {
    var line: String?
    while (true){
        line = it.readLine()?: break
        println(line)
    }
}

其实kotlin里面封装了好多file的扩展方法
上面可以简化一句代码

File("hello.txt").readLines().forEach(::println)
image

这里不再一一介绍

上一篇 下一篇

猜你喜欢

热点阅读