gpt4 book ai didi

kotlin - 干净的方式读取Kotlin中的所有输入行

转载 作者:行者123 更新时间:2023-12-01 15:30:47 25 4
gpt4 key购买 nike

进行编码挑战时的常见模式是读取多行输入。假设您事先不知道多少行,那么您要读取直到EOF(readLine返回null)。

另外,作为序言,我不想依赖java.utils。*,因为我使用KotlinNative进行编码,所以没有Scanner。

我想做些类似的事情

val lines = arrayListOf<String>()
for (var line = readLine(); line != null; line = readLine()) {
lines.add(line)
}

但这显然不是有效的Kotlin。我能想到的最干净的是:
while (true) {
val line = readLine()
if (line == null) break
lines.add(line)
}

这行得通,但似乎不是很惯用。有没有更好的方法可以将所有行读入数组,而无需使用while / break循环?

最佳答案

generateSequence 具有不错的属性,如果内部生成器返回null并仅接受一次迭代,它将完成,因此以下代码可能有效:

val input = generateSequence(::readLine)
val lines = input.toList()

然后像 s1m0nw1's answer一样,可以使用任何可用的 Sequence<String>方法来根据您的解决方案进行优化。

关于kotlin - 干净的方式读取Kotlin中的所有输入行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53575064/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com