HTML Diff
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