当前位置: 首页 > 知识库问答 >
问题:

Kotlin用于循环而不是用Kotlin脚本打印

傅毅然
2023-03-14

我是Kotlin的新手,我正在使用for循环,在Kotlin脚本(*.kts文件)中,我在文件中有以下内容:

for (i in 1..5) print("$i, ")

我确实认为它会像这样在一行中打印由逗号分隔的数字1到5:

1, 2, 3, 4, 5, 

但是我在命令行上没有任何输出。我在Mac上通过

kotlin ranges.kts

共有1个答案

张逸清
2023-03-14

这与for循环无关,而与print无关。如果您在脚本末尾添加system.out.flush(),它就可以工作。默认情况下,对system.out的写入(print在引擎盖下使用的)不会总是刷新,而且Kotlin脚本运行程序可能在退出之前没有刷新标准输出流。

这也是使用println工作的原因,正如您所指出的--如果您查看PrintStream中println的实现,您将看到它确实刷新了其内部文本和字符输出流。

我创建了问题https://youtrack.jetbrains.com/issue/kt-38263。

 类似资料:
  • 主要内容:For 循环,while 与 do...while 循环,返回和跳转For 循环 for 循环可以对任何提供迭代器(iterator)的对象进行遍历,语法如下: 循环体可以是一个代码块: 如上所述,for 可以循环遍历任何提供了迭代器的对象。 如果你想要通过索引遍历一个数组或者一个 list,你可以这么做: 注意这种"在区间上遍历"会编译成优化的实现而不会创建额外对象。 或者你可以用库函数 withIndex: 实例 对集合进行迭代: 输出结果: while 与

  • For 循环 for 循环可以对任何提供迭代器(iterator)的对象进行遍历,语法如下: for (item in collection) print(item) 循环体可以是一个代码块: for (item: Int in ints) { // …… } 如上所述,for 可以循环遍历任何提供了迭代器的对象。 如果你想要通过索引遍历一个数组或者一个 list,你可以这么做:

  • 我尝试使用Kotlin脚本将我的一个项目迁移到Gradle。 以下是我的步骤: 用这个替换 将gradle/包装器/gradle-wrapper.properties的更新为与此处相同 创建了相应的 设置到 此时Intellij检测到它并建议: 您可以将Gradle包装器配置为对源使用分发。它将为IDE提供Gradle API/DSL留档。 - gradle'hello-kotlin'项目刷新失败

  • 我目前正在制作一个游戏,它会一次又一次地循环,直到你猜到正确的数字。 我遇到的问题是正确获取循环命令。我想循环一段时间,但我可以让它工作,对于脚本的某些部分。如果我使用的是"而真"循环,if语句的print命令会重复一遍又一遍,但如果我使用任何符号( 非常感谢您的帮助。

  • 我看到一些教程建议在Kotlin中使用val而不是var。我相信val在Java中就像常量,对吗?那么,如果建议使用它而不是var,我们如何更改它的值? 更新:例如:为什么我要使用val而不是var声明类成员(变量或字段)?而在Java中,它就像:

  • 问题内容: 我也在学习Java和android。我们可以在while循环中执行的几乎所有事情都可以在while循环中执行。 我发现一个简单的条件,使用while循环比for循环更好 如果我必须在程序中使用counter的值,那么我认为while循环要比for循环好 使用while循环 在这种情况下,我发现while循环要比for循环好,因为如果要在for循环中实现相同的效果,则必须将counter