Groovy 초보자를 위한 스크립트 튜토리얼
무엇이 Groovy 스크립트?
아파치 Groovy 객체 지향적이며 Java 위해 만들어진 구문 호환 프로그래밍 언어 Java 플랫폼. 이 동적 언어에는 다음과 유사한 많은 기능이 있습니다. Python, 루비, 스몰토크, 페로. Groovy 소스 코드는 다음과 같이 컴파일됩니다. Java JRE가 설치된 모든 플랫폼에서 실행될 수 있도록 바이트코드입니다. Groovy 또한 더 민첩하고 동적으로 만드는 많은 작업을 뒤에서 수행합니다.
Groovy 언어를 스크립트 언어로 사용할 수 있습니다. Java 플랫폼. 슈퍼버전과 거의 비슷하네요 Java 제공하는 Java의 기업 역량. 또한 DSL 지원, 클로저, 동적 타이핑과 같은 다양한 생산성 기능을 제공합니다. 다른 언어와는 달리, 대체 언어가 아닌 동반자로 설계되었습니다. Java.
Groovy?
여기에 사용하고 배워야 하는 주요 이유가 있습니다. Groovy-
- Groovy 민첩하고 역동적인 언어입니다
- 기존의 모든 것과 완벽하게 통합 Java 객체와 라이브러리
- 쉽고 자연스러운 느낌 Java 개발자
- 보다 간결하고 의미 있는 코드는 다음과 같습니다. Java
- 원하는 만큼 많이 또는 적게 사용할 수 있습니다. Java 앱
Groovy 연혁
- 2003년: Bob Mc가 개발Whir터 & 제임스 스트라칸
- 2004: JSR 241에 위임되었으나 폐기됨
- 2005년: Jeremy Rayner와 Guillaume Laforge가 다시 인수
- 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) We Buy Orders 신청서를 클릭하세요. http://groovy-lang.org/download.html 그리고 설치 프로그램을 클릭하세요.
참고: 설치할 수도 있습니다. Groovy Zip 파일을 사용하거나 Eclipse IDE. 이번에 Groovy 튜토리얼, 우리는 계속할 것입니다 Windows 설치
단계 3) 다운로드한 설치 프로그램을 실행합니다. 언어를 선택하고 확인을 클릭하세요
단계 4) 시작하다. 시작 화면에서 NEXT(다음)를 클릭하세요.
단계 5) 라이센스 약관에 동의
단계 6) 설치하려는 구성 요소를 선택하고 NEXT(다음)를 클릭하세요.
단계 7) 설치 디렉터리를 선택하고 NEXT를 클릭하세요.
단계 8) 시작 메뉴 폴더를 선택하고 다음을 클릭하세요.
단계 9) 설치가 완료되면 경로를 기본값으로 설정하고 NEXT(다음)를 클릭하세요.
단계 10) 다음을 클릭하십시오.
단계 11) 시작 메뉴에서 다음을 검색하세요. Groovy 콘솔에서
Groovy Hello World 예
간단한 문자열 "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 다음과 같은 5가지 유형의 연산자가 있습니다.
- 산술 연산자: 더하기(+), 빼기(-), 곱하기(*), 나누기(/)
- 관계 연산자: 같음(==), 같지 않음(!=), 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"}
위와 동일한 출력을 얻습니다. $it는 현재 루프의 값을 제공하는 클로저입니다.
다음 코드를 고려해보세요
2.upto(4) {println "$it"}
출력을 제공합니다
2 3 4
"times" 키워드를 사용하여 동일한 출력을 얻을 수도 있습니다.
5.times{println "$it"}
0,2,4를 인쇄하고 싶다고 생각하십시오. 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
동일한 단계 방법을 사용할 수 있습니다
0.step(7,2){println "$it"}
Groovy- 의사결정
명세서 | 기만 |
---|---|
if 문 | 에서와 같이 Java, 조건이 참이면 if 문이 실행됩니다. |
if/else 문 | if/else 문에서는 처음에 if 문에서 조건이 평가됩니다. 조건이 true이면 그 이후의 명령문을 실행합니다. else 조건 이전에 중지되고 루프에서 종료됩니다. 그러나 조건이 false이면 else 문 블록의 문을 실행합니다. 그런 다음 루프를 종료합니다. |
중첩된 If 문 | if 문이 여러 개 있어야 하는 경우에 사용됩니다. |
Switch 문 | 중첩된 if-else 문은 여러 조건이 있을 때 읽을 수 없게 될 수 있습니다. 코드를 더 읽기 쉽게 만들기 위해 switch 문을 사용합니다. |
중첩된 Switch 문 | In Groovy 중첩된 스위치 문을 사용할 수도 있습니다. |
Groovy 명부
목록 구조를 사용하면 데이터 항목 모음을 저장할 수 있습니다. 에서 Groovy 프로그래밍 언어에서 List는 객체 참조 시퀀스를 보유합니다. 또한 시퀀스의 위치를 보여줍니다. List 리터럴은 쉼표로 구분된 일련의 객체로 표시되고 대괄호로 묶입니다.
Grrovy 목록의 예:
문자열 목록- ['Angular', 'Nodejs,]
객체 참조 목록 - ['Groovy', 2,4 2.6]
정수 값 목록 – [16, 17, 18, 19]
빈 목록- [ ]
다음은 사용 가능한 목록 방법입니다. Groovy:
행동 양식 | 상품 설명 |
---|---|
더하다() | 이 목록의 끝에 새 값을 추가할 수 있습니다. |
contains () | 이 목록에 특정 값이 포함되어 있으면 true를 반환합니다. |
가져 오기() | 지정된 위치의 요소를 반환합니다. |
비었다() | List에 요소가 없으면 참값을 반환합니다. |
마이너스() | 이 명령을 사용하면 컬렉션에 지정된 요소를 제외한 원본 요소로 구성된 새 목록을 만들 수 있습니다. |
을 더한() | 컬렉션에 언급된 요소와 함께 원본 요소로 구성된 새 목록을 만들 수 있습니다. |
팝() | 목록에서 마지막 항목을 제거합니다. |
없애다() | 특정 위치의 요소를 제거합니다. |
역전() | 원래 목록의 요소를 뒤집는 새 목록을 만듭니다. |
크기() | 이 목록의 요소 수를 반환합니다. |
종류() | 정렬된 복사본을 반환합니다. |
다음을 고려하세요 Groovy 스크립트 예
def y = ["Guru99", "is", "최고의", "for", "Groovy"] println y y.add("Learning") println(y.contains("is")) println(y.get(2)) println(y.pop())
출력:
[Guru99, is, 최고의, for, Groovy] true 최고의 Learning
Groovy 지도
지도 Groovy 키 값 쌍의 모음입니다.
예 Groovy 지도:
- [튜토리얼: 'Java, 튜토리얼: 'Groovy] – Tutorial을 키로 포함하고 해당 값을 갖는 키-값 쌍 모음
- [ : ] 빈 지도를 나타냅니다.
다음은 사용 가능한 지도 방법 목록입니다. Groovy.
행동 양식 | 상품 설명 |
---|---|
포함키() | 지도에 이 키가 포함되어 있는지 확인하시겠습니까? |
가져 오기() | 이 명령은 이 맵에서 키를 조회하고 해당 값을 반환합니다. 이 맵에서 항목을 찾지 못하면 null이 반환됩니다. |
keySet () | 이 지도에서 키 세트를 찾을 수 있습니다. |
놓다() | 지정된 값을 이 Map의 지정된 키와 연관시킵니다. 이전에 맵에 이 키에 대한 매핑이 포함된 경우. 그러면 이전 값이 지정된 값으로 대체됩니다. |
크기() | 키-값 매핑 수를 반환합니다. |
값 () | 이 명령은 값의 컬렉션 보기를 반환합니다. |
Groovy 예:
def y = [fName:'Jen', lName:'Cruise', sex:'F'] print y.get("fName")
산출
Jen
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 VS. Java
Groovy | Java |
---|---|
In Groovy, 기본 액세스 지정자는 공개입니다. 이는 지정된 액세스 한정자가 없는 메서드가 공개되어 클래스 및 패키지 경계 외부에서 액세스할 수 있음을 의미합니다. | In Java, 기본 액세스 한정자는 패키지입니다. 즉, 필드, 메서드 또는 클래스에 대한 액세스 한정자를 지정하지 않으면 패키지 전용이 됩니다. |
클래스 멤버에 대해 Getter 및 Setter가 자동으로 생성됩니다. | Java, 필드에 대한 getter 및 setter 메서드를 정의해야 합니다. |
Groovy 문자열에 큰따옴표를 사용하여 변수를 대체할 수 있습니다. | Java 변수 대체를 지원하지 않습니다. |
정보 입력은 선택 사항입니다. | 정보 입력은 필수입니다. Java. |
Groovy 세미콜론으로 끝날 필요는 없습니다. | In Java, 모든 문은 세미콜론으로 끝납니다. |
Groovy 모든 프로그램에 대해 자동으로 Script라는 래핑 클래스입니다. | In Java, 클래스를 실행 가능하게 만들려면 main 메소드가 필요합니다. |
에 관한 신화 Groovy
신화 | 현실 |
---|---|
우리는 사용할 수 있습니다 Groovy 단지 스크립팅을 위해서입니다. | 스크립팅에 사용할 수 있습니다. 그러나 그 외에도 많은 다른 작업을 수행할 수 있습니다. |
Groovy 폐쇄에 관한 모든 것입니다. “그냥 함수형 프로그래밍 언어. " | Groovy Lisp 또는 Closure와 같은 기능적 프로그래밍 언어를 채택합니다. |
Groovy TDD를 원한다면 이상적인 선택입니다 | 이 진술은 사실입니다. 그러나 이것이 사용하는 유일한 이유는 아닙니다. Groovy. |
당신이 사용할 수 Groovy Grails를 사용하려는 경우에만 가능합니다. | Grails는 강력한 웹 개발 프레임워크입니다.
그러나 Groovy 그 이상을 제공합니다. |
사용의 단점 Groovy
- JVM 및 Groovy 스크립트 시작 시간이 느려서 OS 수준 스크립팅이 제한됩니다.
- Groovy 다른 커뮤니티에서는 완전히 받아들여지지 않습니다.
- 사용이 편리하지 않습니다 Groovy IDE를 사용하지 않고
- Groovy 속도가 느려질 수 있어 개발 시간이 늘어납니다.
- Groovy 많은 메모리가 필요할 수 있습니다
- 지식 Java 필수입니다.
Groovy 도구
여기서는 3가지 중요한 도구에 대해 논의하겠습니다. Groovy 스크립트 튜토리얼
1. groovysh: 대화형으로 코드를 실행합니다.
2. groovyConsole: 대화형 코드 실행을 위한 GUI
3. groovy: 그루비 스크립트를 실행합니다. 다음과 같이 사용할 수 있습니다. 펄, Python등
Groovysh
- 명령줄 셸
- 실행하는데 도움이 됩니다 Groovy 대화형으로 코딩하기
- 명령문이나 전체 스크립트를 입력할 수 있습니다.
Groovy 콘솔
- 최소한의 역할을 하는 스윙 인터페이스 Groovy 개발 편집자.
- 상호 작용할 수 있습니다. Groovy 암호
- 로드 및 실행을 도와줍니다. Groovy 스크립트 파일
Groovy
실행하는 프로세서이다. Groovy 프로그램과 스크립트. 유
간단한 테스트에 사용할 수 있습니다. Groovy 표현.
요약
- Groovy 목적으로 사용되는 객체지향 프로그래밍 언어입니다. Java 플랫폼
- Groovy 스크립팅은 모든 기존 항목과 원활하게 통합됩니다. Java 객체와 라이브러리
- 밥 맥Whirter와 James Strachan은 2003년에 그루비를 개발했습니다.
- 목록, 지도, 범위, 정규식 리터럴은 다음의 중요한 기능입니다. Groovy
- 4가지 유형의 운영자가 지원됩니다. Groovy 1. 관계형 2. 논리형 3. 비트연산 4. 할당
- Groovy if, if/else, Nested if, switch, Netsted 스위치 문을 사용하여 의사 결정을 수행했습니다.
- 목록 구조를 사용하면 데이터 항목 모음을 저장할 수 있습니다.
- 지도 Groovy 키 값 쌍의 모음입니다.
- In Groovy, 클래스 멤버에 대해 Getter 및 Setter가 자동으로 생성됩니다.
- In Java, 필드에 getter 및 setter 메서드 제공을 사용할 수 있습니다.
- 에 관한 가장 큰 신화 Groovy 올바르지 않은 스크립팅에만 사용할 수 있다는 것입니다
- 시간이 좀 Groovy 속도가 느려질 수 있어 개발 시간이 늘어납니다.
- 세 Groovy 도구는 다음과 같습니다. 코드를 실행하는 groovysh, 대화형 코드 실행을 위한 GUI인 groovy Console, 스크립트를 실행하는 groovy