Groovy Підручник зі сценаріїв для початківців
Що таке? Groovy Сценарій?
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: Розроблено Bob McWhirтер і Джеймс Страчан
- 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 встановлений.
Крок 2) Перейдіть до http://groovy-lang.org/download.html і натисніть інсталятор.
Примітка. Ви також можете встановити Groovy за допомогою файлу Zip або як Eclipse IDE. В цьому Groovy підручник, ми будемо дотримуватися Windows Монтажник
Крок 3) Запустіть завантажений інсталятор. Виберіть мову та натисніть OK
Крок 4) Запуск. На екрані привітання натисніть ДАЛІ
Крок 5) Погодьтеся з умовами ліцензії
Крок 6) Виберіть компоненти, які потрібно встановити, і натисніть «ДАЛІ».
Крок 7) Виберіть каталог встановлення та натисніть ДАЛІ
Крок 8) Виберіть «Папка меню «Пуск» і натисніть «ДАЛІ».
Крок 9) Після завершення інсталяції залиште шляхи за замовчуванням і натисніть ДАЛІ
Крок 10) Натисніть ДАЛІ
Крок 11) У меню «Пуск» знайдіть Groovy Консоль
Groovy Привіт, світ, приклад
Уявімо, що ми хочемо надрукувати простий рядок «Hello World». Java. Код для отримання рядка Groovy привіт світ був би
public class Demo { public static void main(String[] args) { System.out.println("Hello World"); } }
Наведений вище код дійсний в обох Java та Groovy as Groovy є надмножиною Java. Але перевага с Groovy полягає в тому, що ми можемо відмовитися від створення класів, створення загальнодоступних методів тощо та отримати той самий результат за допомогою одного рядка коду, як показано нижче:
println "Hello World."
Крапки з комою не потрібні
Дужки не потрібні
System.out.println скорочується до println
Groovy Змінні
In Java, статичне прив'язування є обов'язковим. Це означає, що тип змінної має бути оголошений заздалегідь.
public class Demo { public static void main(String[] args) { int x = 104; System.out.println(x); //x = "Guru99"; } }
У наведеному вище прикладі цього Groovy підручник, тип змінної (ціле число) оголошується заздалегідь за допомогою ключового слова “int”. Якщо ви повинні були оголосити число з плаваючою комою, ви використовуєте ключове слово float.
Якщо ви спробуєте призначити рядкове значення int (розкоментувати рядок №5), ви отримаєте таку помилку
Demo.java:5: error: incompatible types: String cannot be converted to int x = "Guru99";
У контрасті, Groovy підтримує Dynamic Typing. Змінні визначаються за допомогою ключового слова «def», і тип змінної не потрібно оголошувати заздалегідь. Компілятор визначає тип змінної під час виконання, і ви навіть можете визначити тип змінної.
Розглянемо наступний чудовий приклад:
def x = 104 println x.getClass() x = "Guru99" println x.getClass()
вихід:
class java.lang.Integer class java.lang.String
In Groovy, можна створювати багаторядкові рядки. Просто переконайтеся, що ви взяли рядок у потрійні лапки.
def x = """Groovy at Guru99""" println x
вихід:
Groovy at Guru99
Примітка:: ви все ще можете змінювати типи, такі як byte, short, int, long тощо Groovy. Але ви не можете динамічно змінювати тип змінної, оскільки ви її явно оголосили.
Розглянемо такий код:
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-Operaторс
Оператор — це символ, який вказує компілятору виконати певні математичні або логічні маніпуляції.
Groovy має такі п’ять типів операторів –
- Арифметичні оператори: додавання (+), віднімання (-), множення (*), ділення (/)
- Оператори відношення: дорівнює (==), не дорівнює (!=), Less ніж (<) Less більше або дорівнює (<=), більше ніж (>), більше або дорівнює (>=)
- Логічні оператори: And (&&), Or(||), Not(!)
- Порозрядні оператори: And(&), Or(|), (^), Xor або оператор Exclusive-or
- Оператори присвоювання: оператор заперечення (~)
Groovy-Петлі
In 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 с для зациклення 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- Прийняття рішень
Заяви | Обман |
---|---|
if Заява | А саме Javaоператор if виконується, якщо умова виконується. |
Оператор if/else | У операторі if/else спочатку умова оцінюється в операторі if. Якщо умова істинна, то виконує оператори після цього. Він зупиняється перед умовою else і виходить із циклу. Однак, якщо умова хибна, виконує оператори в блоці операторів else. Потім він виходить із циклу. |
Вкладений оператор If | Він використовується, коли є вимога мати кілька операторів if. |
Заява про перемикач | Вкладений оператор if-else може стати нечитабельним, якщо у вас є кілька умов. Щоб зробити код більш читабельним, використовується оператор switch. |
Вкладений оператор Switch | In Groovy також можна використовувати вкладені оператори switch. |
Groovy список
Структура списку дозволяє зберігати набір елементів даних. В а Groovy мовою програмування список містить послідовність посилань на об’єкти. Він також показує позицію в послідовності. Літерал List представляється як ряд об’єктів, розділених комами та взятих у квадратні дужки.
Приклад списку Grrovy:
Список рядків - ['Angular', 'Nodejs,]
Список посилань на об’єкти – ['Groovy', 2,4 2.6]
Список цілих значень – [16, 17, 18, 19]
Порожній список - [ ]
Нижче наведено список методів, доступних у Groovy:
Методи | Опис |
---|---|
add () | Дозволяє додати нове значення в кінець цього списку. |
містить() | Повертає true, якщо цей список містить певне значення. |
get () | Повертає елемент у визначену позицію |
пусто() | Повертає істинне значення, якщо список не містить елементів |
мінус() | Ця команда дозволяє створити новий список, що складається з елементів оригіналу, за винятком тих, які вказані в колекції. |
плюс() | Дозволяє створити новий список, що складається з елементів оригіналу разом із згаданими в колекції. |
поп () | Видаляє останній елемент зі списку |
видалити () | Видаляє елемент у певній позиції |
зворотний() | Створіть новий список, який змінює елементи початкового списку |
розмір () | Повертає кількість елементів у цьому списку |
сортувати () | Повертає відсортовану копію |
Розглянемо наступне 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
Groovy карти
Мапа Groovy це набір пар ключ-значення
Приклади Groovy карти:
- [Посібник: 'Java, Підручник: 'Groovy] – колекція пар ключ-значення, яка має підручник як ключ та їхні відповідні значення
- [ : ] Представляє порожню карту
Ось список методів карти, доступних у Groovy.
Методи | Опис |
---|---|
міститьКлюч() | Перевірити, чи карта містить цей ключ чи ні? |
get () | Ця команда шукає ключ у цій карті та повертає відповідне значення. Якщо ви не знайдете жодного запису на цій карті, вона поверне значення null. |
keySet() | Дозволяє знайти набір ключів на цій карті |
поставити() | Пов’язує вказане значення з заданим ключем у цій карті. Якщо карта раніше містила відображення для цього ключа. Тоді старе значення буде замінено вказаним значенням. |
розмір () | Повертає кількість зіставлень ключ-значення. |
values () | Ця команда повертає перегляд колекції значень. |
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 проти Java
Groovy | Java |
---|---|
In Groovy, специфікатор доступу за замовчуванням є відкритим. Це означає, що метод без будь-якого вказаного модифікатора доступу є публічним і доступним поза межами класу та пакету. | In Java, стандартним модифікатором доступу є пакет, тобто, якщо ви не вкажете модифікатор доступу для полів, методів або класу, він стає приватним для пакета, |
Геттери та сетери автоматично генеруються для членів класу. | Java, вам потрібно визначити методи отримання та встановлення для полів |
Groovy дозволяє замінювати змінні за допомогою подвійних лапок із рядками. | Java не підтримує заміну змінних. |
Вводити інформацію необов’язково. | Введення інформації є обов’язковим Java. |
Groovy не обов’язково закінчуватися крапкою з комою. | In Java, кожен оператор закінчується крапкою з комою. |
Groovy автоматично є класом обгортки під назвою Script для кожної програми | In Java, вам потрібен основний метод, щоб зробити клас виконуваним. |
Міфи про Groovy
Міф | Реальність |
---|---|
Ми можемо використовувати Groovy тільки для сценарію. | Його можна використовувати для створення сценаріїв. Однак ви можете виконувати багато інших завдань, крім нього. |
Groovy це все про закриття. «Це просто функціональна мова програмування». | Groovy використовує такі функціональні мови програмування, як Lisp або Closure. |
Groovy це ідеальний вибір, якщо ви хочете зробити TDD | Це твердження вірне. Однак це, звичайно, не єдина причина для використання Groovy. |
Ви можете використовувати Groovy лише якщо ви хочете використовувати Grails. | Grails — це потужна платформа веб-розробки.
Можливості Groovy пропонує більше, ніж це. |
Мінуси використання Groovy
- JVM і Groovy час запуску сценарію повільний, що обмежує виконання сценаріїв на рівні ОС
- Groovy не цілком прийнятний в інших спільнотах.
- Користуватися не зручно Groovy без використання IDE
- Groovy може бути повільнішим, що збільшує час розробки
- Groovy може знадобитися багато пам'яті
- Знання Java є обов’язковим.
Groovy Інструменти
У цьому ми обговоримо 3 важливі інструменти Groovy підручник зі сценарієм
1. groovysh: Виконує код в інтерактивному режимі.
2. groovyConsole: графічний інтерфейс для інтерактивного виконання коду
3. groovy: виконує сценарії groovy. Ви можете використовувати його як Perl, Python, І т.д.
Groovysh
- оболонка командного рядка
- Допомагає виконувати Groovy код в інтерактивному режимі
- Дозволяє вводити оператори або цілі сценарії
Groovy втішити
- Інтерфейс Swing, який діє як мінімальний Groovy редактор розвитку.
- Дозволяє взаємодіяти Groovy код
- Допомагає вам завантажити та запустити Groovy файли сценаріїв
Groovy
Це процесор, який виконує Groovy програми та скрипти. U
Його можна використовувати для простого тестування Groovy вирази.
Підсумки
- Groovy це об'єктно-орієнтована мова програмування, яка використовується для Java платформа
- Groovy створення сценаріїв забезпечує повну інтеграцію з усіма існуючими Java об'єктів і бібліотек
- Боб МакWhirter & James Strachan розробили groovy у 2003 році
- Список, карта, діапазон, літерали регулярних виразів є важливими функціями Groovy
- Чотири типи операторів підтримуються Groovy 1. Реляційний 2. Логічний 3. Порозрядний 4. Присвоєння
- Groovy виконував прийняття рішень за допомогою операторів if, if/else, Nested if, switch, Netsted switch
- Структура списку дозволяє зберігати колекцію елементів даних
- Мапа Groovy це набір пар ключ-значення
- In Groovy, Геттери та сетери автоматично генеруються для членів класу
- In Java, ви можете використовувати метод getters і setters для полів
- Найбільший міф про Groovy полягає в тому, що його можна використовувати лише для створення сценаріїв, що є неправильним
- Деякий час Groovy може бути повільнішим, що збільшує час розробки
- Три Groovy Інструменти: groovysh, який виконує код, groovy Console, який є графічним інтерфейсом користувача для інтерактивного виконання коду, і groovy, який виконує сценарії.