如何在kotlin中读取stdin中的所有行?
我知道可以使用while循环使用readLine函数从stdin获取多行输入 kotlin中是否有一个函数可以在不使用JVMAPI的情况下从stdin一次检索所有行如何在kotlin中读取stdin中的所有行?,kotlin,stdin,Kotlin,Stdin,我知道可以使用while循环使用readLine函数从stdin获取多行输入 kotlin中是否有一个函数可以在不使用JVMAPI的情况下从stdin一次检索所有行 val input = generateSequence(::readLine).joinToString("\n") print(input) 第一行从stdin获取多行输入,并将其放入变量中 generateSequence是kotlin标准库kotlin.sequences包中的一个函数,它接受另一个函数并调用它,直到返回n
val input = generateSequence(::readLine).joinToString("\n")
print(input)
第一行从stdin获取多行输入,并将其放入变量中
generateSequence
是kotlin标准库kotlin.sequences
包中的一个函数,它接受另一个函数并调用它,直到返回null。最后,它将返回一个Sequence实例,即可以迭代的元素序列
::readLine
部分是将用于从stdin读取的readLine
函数传递到generateSequence
函数的一种方法。不使用::
调用readLine()
将导致编译器错误,因为generateSequence
需要lambda,而不是字符串
joinToString方法属于Sequence类。它将迭代其元素并使用给定的分隔符连接它们,在本例中,分隔符是新行(\n)
最后,在第二行,我们只是将结果打印到标准输出上。请解释一下