首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Kotlin for循环不以Kotlin脚本打印

Kotlin for循环不以Kotlin脚本打印
EN

Stack Overflow用户
提问于 2020-04-14 17:42:49
回答 1查看 378关注 0票数 0

我对Kotlin很陌生,我正在使用for循环,在Kotlin脚本(*.kts文件)中,我在文件中有如下内容:

代码语言:javascript
运行
复制
for (i in 1..5) print("$i, ")

我确实认为它会把数字1到5用逗号分隔成一行,如下所示:

代码语言:javascript
运行
复制
1, 2, 3, 4, 5, 

但是,我并没有在命令行中得到任何输出。我在Mac上运行这个

代码语言:javascript
运行
复制
kotlin ranges.kts

如果我在这个单一for循环后面放置了任何内容,比如一个单独的println(),或者如果我用println替换循环中的打印,它就能工作,并给出输出。

我不明白这种行为。有人能给我解释一下吗?

Edit1:版本: kotlin: 1.3.71 MacOS 10.15.4 (Catalina)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-14 18:10:26

这与for循环无关,与print无关。如果在脚本的末尾添加System.out.flush(),它就能工作。默认情况下,写到System.out ( print在幕后使用)并不总是刷新,而且Kotlin脚本运行程序很可能在退出之前不会刷新标准输出流。

这也是使用println的原因,正如您所提到的--如果您查看实现 of println in PrintStream,您会发现它确实刷新了内部文本和字符输出流。

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61213905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档