0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>Теги: groovy, примеры кода, особенности</p>
1
<p>Теги: groovy, примеры кода, особенности</p>
2
<p>В этой статье рассмотрим некоторые особенности работы с Groovy на примерах. Начиная с Java 11, исходный код Groovy можно выполнять как обычный скрипт. Чтобы это работало, необходимо, чтобы скрипт содержал код вне определения класса либо класс с методом main, либо Runnable, либо же GroovyTestCase:</p>
2
<p>В этой статье рассмотрим некоторые особенности работы с Groovy на примерах. Начиная с Java 11, исходный код Groovy можно выполнять как обычный скрипт. Чтобы это работало, необходимо, чтобы скрипт содержал код вне определения класса либо класс с методом main, либо Runnable, либо же GroovyTestCase:</p>
3
<p>В качестве<strong>строк</strong>в Groovy используются Java Strings с одинарными кавычками, а также GStrings с 2-ми кавычками.</p>
3
<p>В качестве<strong>строк</strong>в Groovy используются Java Strings с одинарными кавычками, а также GStrings с 2-ми кавычками.</p>
4
<p>При этом Groovy неявно генерирует методы, обеспечивая тем самым доступ к переменным (setColor(String color) и getColor()):</p>
4
<p>При этом Groovy неявно генерирует методы, обеспечивая тем самым доступ к переменным (setColor(String color) и getColor()):</p>
5
<p>Если же нужен доступ к спискам, массивам и отображениям, Groovy делает это просто и последовательно:</p>
5
<p>Если же нужен доступ к спискам, массивам и отображениям, Groovy делает это просто и последовательно:</p>
6
<p>Следующий момент --<strong>сlosure (замыкание)</strong>. Речь идет об анонимной функции и объекте в одном виде:</p>
6
<p>Следующий момент --<strong>сlosure (замыкание)</strong>. Речь идет об анонимной функции и объекте в одном виде:</p>
7
<p>При этом return совершенно не обязательно указывать в функции - по умолчанию вернется значение последней упомянутой переменной.</p>
7
<p>При этом return совершенно не обязательно указывать в функции - по умолчанию вернется значение последней упомянутой переменной.</p>
8
<p>Что касается передачи параметров в методы, функции либо замыкания, то делать это можно без скобок:</p>
8
<p>Что касается передачи параметров в методы, функции либо замыкания, то делать это можно без скобок:</p>
9
<p>Ниже -- параметры с установленными значениями:</p>
9
<p>Ниже -- параметры с установленными значениями:</p>
10
<p>А теперь приведем пример множественного присваивания переменных:</p>
10
<p>А теперь приведем пример множественного присваивания переменных:</p>
11
<p>Очередной момент -- если мы запустим новый поток с объявлением ключевого слова "as", мы, по сути, приведем объект Thread к интерфейсу Runnable:</p>
11
<p>Очередной момент -- если мы запустим новый поток с объявлением ключевого слова "as", мы, по сути, приведем объект Thread к интерфейсу Runnable:</p>
12
<p>Что касается неизменяемых классов, то их маркируют посредством аннотации<strong>Immutable</strong>:</p>
12
<p>Что касается неизменяемых классов, то их маркируют посредством аннотации<strong>Immutable</strong>:</p>
13
<p>Далее стоит упомянуть<strong>Traits</strong>-- интерфейс и его стандартную реализацию и состояние в одном месте:</p>
13
<p>Далее стоит упомянуть<strong>Traits</strong>-- интерфейс и его стандартную реализацию и состояние в одном месте:</p>
14
<p>Остается сказать пару слов про встроенный менеджер зависимостей<strong>Grape</strong>-- он дает возможность подгружать нужные библиотеки и файлы из репозиториев maven в случае вызова из командной строки (файл --<em>testJetty.groovy</em>):</p>
14
<p>Остается сказать пару слов про встроенный менеджер зависимостей<strong>Grape</strong>-- он дает возможность подгружать нужные библиотеки и файлы из репозиториев maven в случае вызова из командной строки (файл --<em>testJetty.groovy</em>):</p>
15
<p><em>По материалам https://ru.wikipedia.org/wiki/Groovy.</em></p>
15
<p><em>По материалам https://ru.wikipedia.org/wiki/Groovy.</em></p>
16
16