5.12. Прочие особенности
Прочие особенности
Динамическая типизация:
Groovy позволяет работать с переменными без явного указания типа (def), что делает его гибким для скриптов.
Метапрограммирование:
Groovy поддерживает изменение поведения классов и объектов во время выполнения.
String.metaClass.shout = { -> delegate.toUpperCase() }
println "hello".shout() // Вывод: HELLO
AST Transformations:
Плагины компиляции позволяют модифицировать абстрактное синтаксическое дерево (AST) на этапе компиляции. Например, аннотации @ToString, @EqualsAndHashCode.
Поддержка DSL:
Groovy подходит для создания доменно-специфических языков (DSL), например, Gradle использует Groovy для своих скриптов сборки.
Работа с XML и JSON:
Groovy предоставляет удобные средства для работы с XML и JSON.
def xml = new XmlBuilder()
xml.person {
name "Alice"
age 30
}
def jsonSlurper = new JsonSlurper()
def person = jsonSlurper.parseText('{"name":"Alice","age":30}')
Гибкость синтаксиса:
- Не обязательно использовать точку с запятой
- Можно опускать return в конце метода
- Методы можно вызывать без скобок
def hello(name) {
"Hello, $name"
}
println hello "Groovy" // Вызов без скобок