Оператор диапазона в Groovy не печатает весь диапазон номеров - PullRequest
0 голосов
/ 01 марта 2019

Новичок в groovy и следующий учебник по Tutorialspoint и застрял на операторах диапазона здесь

В операторах диапазона предусмотрены нотации def range = 0..5

Код, отсекаемый имииспользуется для показа примера

class Example {
  static void main(String[] args) {
    def range = 5..10;
    println(range);
    println(range.get(2));
  }
}

Выходные данные должны быть

[5, 6, 7, 8, 9, 10]
7

При выполнении того же фрагмента я получаю

5..10
7

Я попробовал этот пример и удалил точки с запятой, нополучить тот же результат.Не могли бы вы объяснить, что я делаю здесь не так, спасибо.

Ответы [ 2 ]

0 голосов
/ 01 марта 2019

Вы ожидаете список в вашем первом отпечатке

Если вам нужно, вы можете сделать

println range.toList()
0 голосов
/ 01 марта 2019

То, что вы делаете, это печать IntRange объекта, который вы создаете с помощью 5..10.Вы можете видеть, что toString() IntRange будет печатать именно то, что вы получаете.

Чтобы напечатать каждый из элементов в диапазоне, вам нужно использовать цикл.

range.each {
    println it
}

Однако это не даст вам точного результата, который вы ищете, так как каждое число будет в отдельной строке.

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