IntelliJ Ultimate Kotlin脚本REPL跳过第一行打印-临时输出被切断

时间:2019-07-01 15:46:20

标签: intellij-idea kotlin

我喜欢在intelliJ中使用REPL来解决编码问题,就像您在codesignal上会发现的那样。我目前有版本:

IntelliJ IDEA 2019.1.3 (Ultimate Edition)
Build #IU-191.7479.19, built on May 27, 2019
JRE: 1.8.0_202-release-1483-b58 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
macOS 10.14.4

我一直感到困惑,因为在运行这些暂存文件中的任何一个时,我尝试将输出打印到的前5-9行将不存在。

下面是一个示例程序,可以在控制台上打印出X的金字塔

fun createPyramid(height: Int, drawChar: String = "X") {
//    repeat(9) {
//        println("blank")
//    }

    for (i in 1 until height) {
        val blank = " ".repeat(height - i)
        val row = blank + drawChar.repeat(i * 2 - 1)
        println(row)
    }
}

createPyramid(11)

如果我已将重复块注释掉,则输出如下:

cut off print

如果我取消注释重复,我将得到如下输出:

complete pyramid

关于这种情况的真正令人困惑的部分是行数似乎是随机的,并且它的工作方式存在不一致之处。 如果我做repeat(9),我通常会得到1个实际打印出来的“空白” 如果我大部分时间都repeat(8)这样做,实际上它不会从金字塔中取出第一个期望的“ X”。

1 个答案:

答案 0 :(得分:1)

在提供此输出的表达式旁边,直接在编辑器中打印了划痕的输出。临时输出工具窗口仅打印编辑器中不适合的输出。