java - kotlin 的 readLine 函数的奇怪行为
问题描述
我正在为一份新工作选择 kotlin,并且正在通过intellij hello world 应用程序为 kotlin 工作。
在演练中,您将创建一个控制台应用程序,该应用程序读取标准输入并打印问候语:
fun main(args: Array<String>) {
println("What's your name?")
val name = readLine()
println("Hello, $name")
}
超级简单。
我遇到的问题是,在运行应用程序时,我也收到提示输入我的名字,我输入它,按 Enter,但没有任何反应。该应用程序仍在运行,但它不接受第一次enter
按下按钮后的标准输入。
如果我再按回车一两次,它最终会接受输入,但会拉入一个空字符串(如果它将两到三个enter
按钮中的每一个都注册为一个新行,这很有意义)。
我可以在此处发布的屏幕截图中无法捕获交互,但我确实记录了正在发生的事情的快速视频:https ://vimeo.com/486636891
我在 readLine 上查找了kotlin 文档,但他们并没有真正让我了解可能发生的事情。
知道这里出了什么问题以及如何解决它吗?最终,我不会用 kotlin 编写很多控制台应用程序,所以这并不重要,但是无法通过语言/工具的第一个 hello-world 应用程序的想法困扰着我。
更新
嗯,一定是在构建jar之前运行源代码。
如果我继续本教程直到我构建 jar 并运行它,文件运行良好:
仍然非常令人沮丧的是,如果没有构建它就无法工作。
解决方案
所以在挖掘了一下之后,它似乎是一个 IDE 问题,所以我将它作为一个错误提交给了 JetBrains。
今天早上我收到一封电子邮件,说提交被重复,标记为错误,并分配给某人,所以看起来这个问题是基于 def IDE 的,希望在不久的将来能得到修复。
如果有人想关注进度或查看未来结果,请点击此处的链接。
推荐阅读
- machine-learning - 响应生成如何在 RASA 核心中工作?
- node.js - 无法从 template.yml 文件注册多个选项并在 lambda api 网关上发布 api
- javascript - 我如何编码,以便单击后的按钮将用户引导到同一 html 中的页脚?
- java - java socket聊天代码抛出java.net.SocketException: Socket closed
- python - 将 Pickle 数据(python)读入 R 后数字发生变化
- linux - 如何在不重新启动或注销的情况下更新 sudo bash 中的 /etc/profile
- c# - 从十六进制转换为文本
- javascript - 将保存在 JS 中的字符串转换为 Swift 中的日期
- node.js - 如何为nodejs设置nginx反向代理
- node.js - 节点js中同步函数中的while循环