下面来创建一个给定文件名返回文件中每行文本字符串的流式API,代码风格是下面这样的:
fun main(args: Array) {
val lines = “src/main/resources/data.txt”
.stream()
.buffered()
.reader(“utf-8”)
.readLines()
lines.forEach(::println)
}
//接下来来扩展函数:
fun String.stream() = FileInputStream(this)
fun FileInputStream.buffered() = BufferedInputStream(this)
fun InputStream.reader(charset: String) = InputStreamReader(this, charset)
fun Reader.readLines(): List {
val result = arrayListOf()
forEachLine {
result.add(it)
}
return result
}
我们来实现一个简单的在 Kotlin做 SQL操作的DSL
//创建一个学生类
data class Student(var name: String, var sex: String, var score: Int)
val students = listOf(
Student(“Rikka”,“M”,90),
Student(“xiaohu”,“F”,