我知道可以使用 while 循环使用 readLine 函数从 stdin 获取多行输入。
kotlin 中是否有一个函数可以在不使用 JVM api 的情况下从 stdin 一次检索所有行?
val input = generateSequence(::readLine).joinToString("\n")
print(input)
Run Code Online (Sandbox Code Playgroud)
第一行从 stdin 获取多行输入并将其放入变量中。
这generateSequence是 kotlin 标准库包中的一个函数kotlin.sequences,它接受另一个函数并调用它,直到它返回 null。最后它将返回一个 Sequence 实例,这是一个可以迭代的元素序列。
该::readLine部分是一种将函数传递给函数的方法readLine,用于从 stdin 读取generateSequence数据。只调用readLine()without::会导致编译器错误,因为generateSequence需要 lambda,而不是字符串。
joinToString 方法属于 Sequence 类。它将迭代其元素并使用给定的分隔符连接它们,在本例中,分隔符是一个新行 (\n)。
最后,在第二行,我们将结果打印到标准输出。
| 归档时间: |
|
| 查看次数: |
2527 次 |
| 最近记录: |