В IntelliJ Ultimate Kotlin Script REPL пропускаются первые напечатанные строки - вывод с нуля обрезан - PullRequest
0 голосов
/ 01 июля 2019

Мне нравится использовать REPL в intelliJ для кодирования проблем, которые вы могли бы найти в коде сигнала. В настоящее время у меня есть версия:

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) большую часть времени, он фактически не выдаст первую ожидаемую букву "Х" из пирамиды.

1 Ответ

1 голос
/ 01 июля 2019

Вывод на царапины печатается прямо в редакторе, рядом с выражением, обеспечивающим этот вывод.Окно инструмента Scratch Output печатает только вывод, который не помещается в редакторе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...