进行编码挑战时的一个常见模式是读取多行输入。假设您事先不知道有多少行,您想读取直到 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 循环?