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 Foundation
Характеристики на Groovy
- Списък, карта, диапазон, литерали на регулярен израз
- Мултиметод и метапрограмиране
- Groovy класовете и скриптовете обикновено се съхраняват в .groovy файлове
- Скриптовете съдържат Groovy изрази без никаква декларация на клас.
- Скриптовете могат също да съдържат дефиниции на методи извън дефинициите на класове.
- Може да бъде компилиран и напълно интегриран с традиционния Java приложение.
- Поддръжка на езиково ниво за карти, списъци, регулярни изрази
- Поддържа затваряне, динамично писане, метаобектен протокол
- Поддръжка за статично и динамично въвеждане и претоварване на оператори
- Литерална декларация за списъци (масиви), карти, диапазони и регулярни изрази
Как да инсталираме Groovy
Стъпка 1) Уверете се, че имате Java инсталирана.
Стъпка 2) Отиди http://groovy-lang.org/download.html и щракнете върху инсталатора.
Забележка: Можете също да инсталирате Groovy с помощта на Zip файла или като Eclipse IDE. В този Groovy урок, ние ще се придържаме към Windows Installer
Стъпка 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 поддържа динамично въвеждане. Променливите се дефинират с помощта на ключовата дума „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
Можете също да използвате ключовата дума „времена“, за да получите същия резултат
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. |
| Вложен оператор за превключване | In Groovy също е възможно да се използват вложени изрази за превключване. |
Groovy списък
Структурата на списъка ви позволява да съхранявате колекция от елементи с данни. В а Groovy език за програмиране, списъкът съдържа последователност от препратки към обекти. Той също така показва позиция в последователността. Списъчният литерал се представя като поредица от обекти, разделени със запетаи и оградени в квадратни скоби.
Пример за Grrovy списък:
Списък от низове - ['Angular', 'Nodejs,]
Списък с препратки към обекти – ['Groovy', 2,4 2.6]
Списък с цели числа – [16, 17, 18, 19]
Празен списък- [ ]
Следват списъчни методи, налични в Groovy:
| Методи | Descriptйон |
|---|---|
| добавяне () | Позволява ви да добавите новата стойност в края на този списък. |
| съдържа() | Връща true, ако този списък съдържа определена стойност. |
| получи () | Връща елемента в определена позиция |
| isEmpty() | Връща истинска стойност, ако списъкът не съдържа елементи |
| минус() | Тази команда ви позволява да създадете нов списък, съставен от елементите на оригинала, с изключение на тези, които са посочени в колекцията. |
| плюс() | Позволява ви да създадете нов списък, съставен от елементите на оригинала заедно със споменатите в колекцията. |
| поп () | Премахва последния елемент от списъка |
| Премахване() | Премахва елемента на конкретната позиция |
| обратен() | Създайте нов списък, който обръща елементите на оригиналния списък |
| размер () | Връща броя на елементите в този списък |
| вид() | Връща сортирано копие |
Помислете за следното 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] – Колекция от двойки ключ-стойност, която има Tutorial като ключ и съответните им стойности
- [ : ] Представлява празна карта
Ето списък на картографските методи, налични в Groovy.
| Методи | Descriptйон |
|---|---|
| съдържа ключ() | Проверете дали картата съдържа този ключ или не? |
| получи () | Тази команда търси ключа в тази карта и връща съответната стойност. Ако не намерите никакъв запис в тази карта, тя ще върне нула. |
| 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 Срещу. Java
| Groovy | Java |
|---|---|
| In Groovy, спецификаторът за достъп по подразбиране е публичен. Това означава, че метод без определен модификатор за достъп е публичен и достъпен извън границите на класа и пакета. | In Java, модификаторът за достъп по подразбиране е пакет, т.е. ако не посочите модификатор за достъп за полета, методи или клас, той става частен за пакета, |
| Getters и setters се генерират автоматично за членовете на класа. | 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: GUI за интерактивно изпълнение на код
3. groovy: Изпълнява groovy скриптове. Можете да го използвате като Perl, PythonИ др
Groovysh
- обвивка на командния ред
- Помага ви да изпълните Groovy кодирайте интерактивно
- Позволява въвеждане на изрази или цели скриптове
Groovy утеши
- Swing интерфейс, който действа като минимален Groovy редактор за развитие.
- Позволява ви да взаимодействате Groovy код
- Помага ви да заредите и стартирате Groovy скриптови файлове
Groovy
Това е процесорът, който изпълнява Groovy програми и скриптове. U
Може да се използва за просто тестване Groovy изрази.
Oбобщение
- 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, Getters и setters се генерират автоматично за членовете на класа
- In Java, можете да използвате метода предоставяне на гетери и сетери за полета
- Най-големият мит за Groovy е, че може да се използва само за скриптове, което не е правилно
- Някой път Groovy може да бъде по-бавно, което увеличава времето за разработка
- Три Groovy Инструментите са: groovysh, който изпълнява код, groovy Console, който е GUI за интерактивно изпълнение на код и groovy, който изпълнява скриптове













