Учебники

63) Groovy Script Tutorial

Что такое Groovy Script?

APACHE GROOVY — это объектно-ориентированный и синтаксически совместимый язык программирования Java, созданный для платформы Java. Этот динамический язык имеет много функций, которые похожи на Python, Ruby, Smalltalk и Pero. Исходный код Groovy компилируется в байт-код Java, поэтому он может работать на любой платформе, на которой установлена ​​JRE. Groovy также выполняет множество задач за кулисами, что делает его более динамичным и динамичным.

Groovy может использоваться как язык сценариев для платформы Java. Это почти как супер версия Java, которая предлагает корпоративные возможности Java. Он также предлагает множество функций производительности, таких как поддержка DSL, замыкания и динамическая типизация. В отличие от некоторых других языков, он разработан как компаньон, а не замена Java.

Почему Groovy?

Вот основные причины, почему вы должны использовать Groovy-

  • Groovy — это динамичный и динамичный язык
  • Полная интеграция со всеми существующими объектами и библиотеками Java
  • Легко и естественно для разработчиков Java
  • Более лаконичный и содержательный код по сравнению с Java
  • Вы можете использовать его столько или мало, как вам нравится с приложениями Java

Groovy История

  • 2003: Разработано Бобом МакВиртером и Джеймсом Страчаном
  • 2004: введен в эксплуатацию в JSR 241, но был заброшен
  • 2005: возвращено Джереми Рейнером и Гийомом Лафоржем
  • 2007: Groovy версия 1.0
  • 2012: Groovy версия 2
  • 2014: Groovy версия 2.3 (официальная поддержка для JDK 8)
  • 2015: Groovy стал проектом в Apache Software Foundation

Особенности Groovy

  • Список, карта, диапазон, литералы регулярных выражений
  • Мультиметод и метапрограммирование
  • Groovy классы и скрипты обычно хранятся в .groovy файлах
  • Скрипты содержат Groovy без каких-либо объявлений классов.
  • Сценарии также могут содержать определения методов вне определений классов.
  • Он может быть скомпилирован и полностью интегрирован с традиционным Java-приложением.
  • Поддержка языкового уровня для карт, списков, регулярных выражений
  • Поддерживает замыкания, динамическую типизацию, протокол метаобъектов
  • Поддержка статической и динамической типизации и перегрузки операторов
  • Литеральное объявление для списков (массивов), карт, диапазонов и регулярных выражений

Установите Groovy

Шаг 1) Убедитесь, что у вас установлена ​​Java. https://www.guru99.com/install-java.html

Шаг 2) Перейдите на http://groovy-lang.org/download.html и нажмите «Установщик».

Примечание. Вы также можете установить Groovy, используя Zip-файл или Eclipse IDE. В этом уроке мы будем придерживаться установщика Windows

Шаг 3) Запустите загруженный установщик. Выберите язык и нажмите ОК

Шаг 4) Запустить. На экране приветствия нажмите ДАЛЕЕ

Шаг 5) Согласитесь с условиями лицензии

Шаг 6) Выберите компоненты, которые вы хотите установить, и нажмите «Далее»

Шаг 7) Выберите каталог установки и нажмите «Далее»

Шаг 8) Выберите «Пуск» и нажмите «Далее».

Шаг 9) После завершения установки оставьте пути по умолчанию и нажмите «Далее».

Шаг 10) Нажмите Далее.

Шаг 11) В меню «Пуск» найдите Groovy Console

Groovy Hello World Пример

Предположим, мы хотим напечатать простую строку «Hello World» на Java. Код для достижения этого будет

public class Demo {
    public static void main(String args[]) {
        System.out.println("Hello World");
    }
}

Приведенный выше код действителен как на Java, так и на Groovy, так как Groovy является надмножеством Java. Но преимущество Groovy состоит в том, что мы можем покончить с созданием классов, созданием открытых методов и т. Д. И получить тот же результат с помощью однострочного кода следующим образом:

println "Hello World." 

Точки с запятой не нужны

Нет необходимости в скобках

System.out.println сокращен до println

Groovy переменные

В Java статическое связывание является обязательным. Значение типа переменной должно быть объявлено заранее.

public class Demo {
    public static void main(String args[]) {
        int x = 104;
        System.out.println(x);
        //x = "Guru99";
    }
}

В приведенном выше примере тип переменной (целое число) объявляется заранее с использованием ключевого слова «int». Если вы должны были объявить число с плавающей запятой, вы используете ключевое слово float.

Если вы попытаетесь присвоить значение String для типа int (раскомментируйте строку # 5), вы получите следующую ошибку

Demo.java:5: error: incompatible types: String cannot be converted to int
x = "Guru99";

Groovy, напротив, поддерживает динамическую типизацию. Переменные определяются с помощью ключевого слова «def», и тип переменной не нужно объявлять заранее. Компилятор вычисляет тип переменной во время выполнения, и вы можете даже тип переменной.

Рассмотрим следующий отличный пример:

def x = 104
println x.getClass()
x = "Guru99"
println x.getClass()

Вывод

class java.lang.Integer
class java.lang.String

В Groovy вы можете создавать многострочные строки. Просто убедитесь, что вы заключили строку в тройные кавычки.

def x = """Groovy
at
Guru99"""
println x

Вывод

Groovy
at
Guru99

Примечание. С помощью Groovy вы все еще можете использовать переменные типа byte, short, int, long и т. Д. Но вы не можете динамически изменять тип переменной, как вы ее явно объявили.

Рассмотрим следующий код:

int x = 104
println x
x = "Guru99"

Это дает следующую ошибку

104
Caught: org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'Guru99' with class 'java.lang.String' to class 'int'
org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'Guru99' with class 'java.lang.String' to class 'int'
    at jdoodle.run(jdoodle.groovy:3)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
Command exited with non-zero status 1

Groovy-операторы

Оператор — это символ, который указывает компилятору выполнять определенные математические или логические манипуляции.

Groovy имеет следующие пять типов операторов —

  • Арифметические операторы: сложение (+), вычитание (-), умножение (*), деление (/)
  • Реляционные операторы: равно (==), не равно (! =), Меньше чем (<) меньше или равно (<=), больше (>), больше или равно (> =)
  • Логические операторы: И (&&), Или (||), Не (!)
  • Битовые операторы: And (&), Or (|), (^), Xor или Exclusive-or оператор
  • Операторы присваивания: оператор отрицания (~)

Groovy-Loops

В Java вы должны определить цикл следующим образом

public class Demo {
    public static void main(String args[]) {
        for (int x = 0; x <= 5; x++) {
            System.out.println(x);
        }
    }
}

Вывод

0
1
2
3
4

Вы можете добиться того же результата в Groovy, используя ключевые слова до

0.upto(4) {println "$it"}

Вы получаете тот же вывод, что и выше. $ это замыкание, которое дает значение текущего цикла.

Рассмотрим следующий код

2.upto(4) {println "$it"}

Это дает вывод

2
3
4

Вы также можете использовать ключевое слово «times», чтобы получить тот же результат

5.times{println "$it"}

Учтите, вы хотите напечатать 0,2,4,6 с циклом for в Java

public class Demo {
    public static void main(String args[]) {
        for (int x = 0; x <= 5; x=x+2) {
            System.out.println(x);
        }
    }
}

Вывод:

0
2
4
6

Вы можете использовать метод шага для того же

0.step(7,2){println "$it"}

Groovy- принятие решений

Заявления обман
если заявление Как и в Java, оператор if выполняется, если условие истинно.
Оператор if / else В операторе if / else сначала выполняется условие в операторе if. Если условие истинно, то после этого выполняются операторы. Он останавливается до условия else и выходит из цикла. Однако, если условие ложно, тогда выполняется оператор в блоке оператора else. Затем он выходит из цикла.
Вложенный оператор If Используется, когда требуется несколько операторов if.
Переключатель Заявление Вложенный оператор if-else может стать нечитаемым, если у вас несколько условий. Чтобы сделать код более читабельным, используется оператор switch.
Вложенный оператор Switch В Groovy также можно использовать вложенные операторы switch.

Groovy List

Структура списка позволяет хранить коллекцию данных предметов. В языке программирования Groovy список содержит последовательность ссылок на объекты. Это также показывает позицию в последовательности. Литерал List представлен в виде серии объектов, разделенных запятыми и заключенных в квадратные скобки.

Пример списка Гровы:

Список строк- [Angular, Nodejs,]

Список ссылок на объекты — [‘Groovy’, 2,4 2.6]

Список целочисленных значений — [16, 17, 18, 19]

Пустой список- []

Ниже перечислены методы, доступные в Groovy:

методы

Описание

Добавить()

Позволяет добавить новое значение в конец этого списка.

содержит()

Возвращает true, если этот список содержит определенное значение.

получить()

Возвращает элемент в определенной позиции

пусто()

Возвращает истинное значение, если List не содержит элементов

минус()

Эта команда позволяет создать новый список, состоящий из элементов оригинала, исключая те, которые указаны в коллекции.

плюс ()

Позволяет создать новый список, составленный из элементов оригинала вместе с упомянутыми в коллекции.

поп ()

Удаляет последний элемент из списка

Удалить()

Удаляет элемент в определенной позиции

обеспечить регресс()

Создайте новый список, который меняет элементы исходного списка

размер()

Разрешить поиск некоторых элементов

Сортировать()

Возвращает отсортированную копию

Рассмотрим следующий пример

def y = ["Guru99", "is", "Best", "for", "Groovy"]
println y
y.add("Learning")
println(y.contains("is"))
println(y.get(2))
println(y.pop())

Вывод

[Guru99, is, Best, for, Groovy]
true
Best
Learning

Groovy Maps

Карта Groovy — это коллекция пар ключевых значений.

Примеры Groovy карт:

  • [Учебник: ‘Java, Учебник:’ Groovy] — Коллекция пар ключ-значение, у которых в качестве ключа указан учебник и соответствующие значения.
  • [:] Представлять пустую карту

Вот список методов карты, доступных в Groovy.

методы

Описание

ContainsKey ()

Проверить, что карта содержит этот ключ или нет?

получить()

Эта команда ищет ключ на этой карте и возвращает соответствующее значение. Если вы не найдете ни одной записи на этой карте, она вернет ноль.

Keyset ()

Позволяет найти набор ключей на этой карте

положил()

Связывает указанное значение с данным ключом в этой карте. Если карта ранее содержала сопоставление для этого ключа. Тогда старое значение будет заменено указанным значением.

размер()

Возвращает количество отображений ключ-значение.

ценности()

Эта команда возвращает коллекцию значений.

Groovy Пример:

def y = [fName:'Jen', lName:'Cruise', sex:'F']
print y.get("fName")

Вывод

Jen

Groovy- Закрытие

Groovy замыкание — это фрагмент кода, заключенный в объект. Он действует как метод или функция.

Пример простого закрытия

def myClosure = {
       println "My First Closure"	
}
myClosure()

Вывод:

My First Closure

Закрытие может принимать параметры. Список идентификаторов разделен запятой

стрелка (->), обозначающая конец списка параметров.

def myClosure = {
       a,b,c->
       y = a+b+c
       println y
}
myClosure(1,2,3)

Вывод

6

Закрытие может вернуть значение.

def myClosure = {
       a,b,c->
       return (a+b+c)
}
println(myClosure(1,2,3))

Вывод

6

Существует много встроенных замыканий, таких как «Это», «личность» и т. Д. Замыкания могут принимать другие замыкания в качестве параметров.

Groovy Vs. Ява

Groovy

Ява

В Groovy спецификатор доступа по умолчанию является общедоступным. Это означает, что метод без какого-либо указанного модификатора доступа является общедоступным и доступен вне границ класса и пакета.

В Java модификатор доступа по умолчанию представляет собой пакет, т. Е. Если вы не укажете модификатор доступа для полей, методов или класса, он станет закрытым для пакета,

Получатели и установщики автоматически генерируются для членов класса.

Java, вам нужно определить метод получения и установки для полей

Groovy допускает подстановку переменных, используя двойные кавычки со строками.

Java не поддерживает подстановку переменных.

Информация о наборе не обязательна.

Информация о наборе обязательна в Java.

Groovy не обязательно заканчиваться точкой с запятой.

В Java каждое утверждение заканчивается точкой с запятой.

Groovy автоматически представляет собой класс-оболочку, называемый Script для каждой программы

В Java вам нужен метод main, чтобы сделать класс исполняемым.

Мифы о Groovy

Миф

реальность

Мы можем использовать Groovy только для сценариев.

Это может быть использовано для написания сценариев. Тем не менее, вы можете выполнять множество других задач, кроме него.

Groovy это все о замыканиях. «Это просто функциональный язык программирования».

Groovy перенимает функциональные языки программирования, такие как Lisp или Closure.

Groovy является идеальным выбором, если вы хотите сделать TDD

Это утверждение верно. Тем не менее, это, конечно, не единственная причина, чтобы использовать Groovy.

Вы можете использовать Groovy, только если вы хотите использовать Grails.

Grails — это мощная платформа для веб-разработки.

Но Groovy предлагает больше, чем это.

Минусы использования Groovy

  • Время запуска сценариев JVM и Groovy медленное, что ограничивает сценарии на уровне ОС
  • Groovy не совсем принят в других сообществах.
  • Не удобно использовать Groovy без IDE
  • Groovy может быть медленнее, что увеличивает время разработки
  • Groovy может понадобиться много памяти
  • Знание Java обязательно.

Groovy Инструменты

Мы обсудим 3 важных инструмента

1. groovysh: выполняет код в интерактивном режиме.

2. groovyConsole: графический интерфейс для выполнения интерактивного кода

3. groovy: выполняет скрипты groovy. Вы можете использовать его как Perl, Python и т. Д.

Groovysh

  • оболочка командной строки
  • Помогает вам выполнить Groovy код в интерактивном режиме
  • Позволяет вводить заявления или целые сценарии

Groovy консоль

  • Интерфейс Swing, который выступает в качестве минимального редактора разработки Groovy.
  • Позволяет взаимодействовать с Groovy кодом
  • Помогает вам загрузить и запустить файлы скриптов Groovy

Groovy

Это процессор, который выполняет Groovy программы и скрипты. U

Может использоваться для проверки простых выражений Groovy.

Резюме

  • Groovy — это объектно-ориентированный язык программирования, используемый для платформы Java
  • Он предлагает бесшовную интеграцию со всеми существующими объектами и библиотеками Java.
  • Боб МакВиртер и Джеймс Стрэчен разработали заводной в 2003 году
  • Список, карта, диапазон, литералы регулярных выражений — важные особенности Groovy
  • Groovy поддерживает четыре типа операторов: 1. Реляционные 2. Логические 3. Побитовые 4. Назначение
  • Groovy принимал решения, используя операторы if, if / else, Nested if, switch, Netsted switch
  • Структура списка позволяет хранить коллекцию элементов данных
  • Карта Groovy — это коллекция пар ключевых значений.
  • В Groovy для членов класса автоматически генерируются геттеры и сеттеры.
  • В Java вы можете использовать метод предоставления и получения для полей
  • Самый большой миф о Groovy заключается в том, что его можно использовать только для сценариев, что не правильно
  • Некоторое время Groovy может быть медленнее, что увеличивает время разработки
  • Три инструмента Groovy: groovysh, который выполняет код, groovy Console, который является GUI для интерактивного выполнения кода, и groovy, который выполняет скрипты