Учебное пособие по Groovy Script для начинающих

Что такое Groovy-скрипт?

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

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

Почему Грови?

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

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

заводная история

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

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

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

Как установить Гроуви

Шаг 1) Убедитесь, что у вас есть Java установлена.

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

установить Groovy

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

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

установить Groovy

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

установить Groovy

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

установить Groovy

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

установить Groovy

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

установить Groovy

Шаг 8) Выберите папку меню «Пуск» и нажмите «ДАЛЕЕ».

установить Groovy

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

установить Groovy

Шаг 10) Нажмите кнопку "Далее

установить Groovy

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

установить Groovy

Отличный пример Hello World

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

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";
    }
}

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

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

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

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

Рассмотрим следующееwing классный пример,

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

Внимание: вы по-прежнему можете использовать такие типы переменных, как byte, short, int, long и т. д., с помощью Groovy. Но вы не можете динамически изменять тип переменной, как вы его явно объявили.

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

int x = 104
println x
x = "Guru99"

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

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 есть следующийwing пять типов операторов –

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

Groovy-лупы

В 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"}

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

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

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

Это дает результат

2
3
4

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

5.times{println "$it"}

Предположим, вы хотите напечатать 0,2,4 с помощью для цикла в 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

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

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

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

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

Отличный список

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

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

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

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

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

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

Фоллоwing доступны ли методы списка в Groovy:

методы Описание
Добавить() Позволяет добавить новое значение в конец этого списка.
содержит() Возвращает true, если этот список содержит определенное значение.
получить() Возвращает элемент в определенной позиции
пустой() Возвращает истинное значение, если список не содержит элементов
минус() Эта команда позволяет создать новый Список, состоящий из элементов оригинала, за исключением тех, которые указаны в коллекции.
плюс() Позволяет создать новый список, состоящий из элементов оригинала и элементов, упомянутых в коллекции.
поп () Удаляет последний элемент из списка
Удалить() Удаляет элемент в определенной позиции
обеспечить регресс() Создайте новый список, который меняет местами элементы исходного списка.
размер() Возвращает количество элементов в этом списке
Сортировать() Возвращает отсортированную копию

Рассмотрим следующееwing Пример Groovy-скрипта

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

Отличные карты

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

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

  • [Учебное пособие: 'Java, Учебное пособие: 'Groovy] — коллекция пар ключ-значение, в которой Tutorial является ключом и их соответствующими значениями.
  • [ : ] Представляет пустую карту

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

методы Описание
containsKey () Проверить, содержит ли карта этот ключ или нет?
получить() Эта команда ищет ключ на этой карте и возвращает соответствующее значение. Если вы не найдете ни одной записи на этой карте, она вернет ноль.
keySet () Позволяет найти набор ключей на этой карте.
положил() Связывает указанное значение с заданным ключом в этой карте. Если карта ранее содержала сопоставление для этого ключа. Тогда старое значение будет заменено указанным значением.
размер() Возвращает количество сопоставлений ключ-значение.
значения() Эта команда возвращает представление коллекции значений.

Отличный пример:

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

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

Отличный против. Джава

Groovy Java
В Groovy спецификатор доступа по умолчанию является общедоступным. Это означает, что метод без какого-либо указанного модификатора доступа является общедоступным и доступен за пределами границ класса и пакета. В Java модификатором доступа по умолчанию является пакет, т.е. если вы не укажете модификатор доступа для полей, методов или класса, он становится частным для пакета.
Геттеры и сеттеры автоматически генерируются для членов класса. Java, вам необходимо определить методы получения и установки для полей
Groovy позволяет заменять переменные, используя double кавычки со строками. 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: выполняет отличные сценарии. Вы можете использовать его как Perl, Питон, и т.д.

Грувыш

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

Отличные инструменты

Отличная консоль

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

Отличные инструменты

Groovy

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

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

Отличные инструменты

Итоги

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