Groovy 학습 노트 2 기본 문법

5089 단어 groovy
1.기본 가 져 오기
다음 가 져 오기 목록 은 항상 Groovy 코드 에 숨겨 져 있 습 니 다.
groovy.lang.*;
groovy.util.*;
java.lang.*;
java.io.*;
java.math.BigDecimal;
java.math.BigInteger;
java.net.*;
java.util.*;
 
다른 자바 류 를 도입 해 야 한다 면 자바 의 import 문 구 를 직접 사용 하여 가 져 올 수 있 습 니 다.예 를 들 어 자바.math.*;
2.디지털 처리
Groovy 는 바 텀 에서 자바 의 BigDecimal 로 부동 소수점 을 표시 하지만 BigDecimal 의 행 위 는 개발 자의 기대 에 부합 하도록 확보 할 것 이다.
3.변수,동적,정적 유형,역할 영역
(1)동적 및 정적 유형
Groovy 는 동적 언어 이기 때문에 변수의 종 류 를 지정 할 필요 가 없습니다.변수의 종 류 는 성명(또는 반환)할 때 확 정 됩 니 다.
정적 형식 변 수 를 설명 하면 부정 확 한 형식 값 으로 값 을 할당 할 때 Groovy 에서 다음 코드 를 실행 하면 오류 가 발생 합 니 다.
a=new Date()
a=1;
Date b=new Date();
b=2.0;
Exception thrown
org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object '2.0' with class 'java.math.BigDecimal' to class 'java.util.Date'
 at ConsoleScript4.run(ConsoleScript4:4)

즉 b=2.0;이 실행 보 고 는 2.0 이라는 값 을 Date 형의 변수 b 에 부여 할 수 없습니다.
(2)Groovy 의 역할 영역
Groovy 의 클래스 에 대해 그 역할 영역 은 자바 와 마찬가지 로 클래스,방법,순환 역할 영역의 변 수 는 그들의 역할 영역 이 모두 당신 이 생각 하 는 것 과 같 습 니 다.하지만 그루 브 이 스 크 립 트 는 다르다.
쉽게 말 하면 Groovy 스 크 립 트 는 두 가지 역할 영역 이 있 습 니 다.
귀속 역,귀속 역 은 스 크 립 트 의 전역 작용 역 입 니 다
본 지역 은 변수의 역할 영역 이 그들의 코드 블록 을 설명 하 는 데 국한 된다.스 크 립 트 코드 블록 에 설 명 된 변수(예 를 들 어 스 크 립 트 의 맨 위)에 대해 정 의 된 변수 라면 그 역할 영역 은 이 지역 을 정의 하 는 것 입 니 다
정의 변 수 는 정적 형식 으로 설명 되 거나 특수 한 def 키워드 로 정 의 된 변 수 를 말 합 니 다.
    스 크 립 트 에서 설명 하 는 방법 은 이 지역 에 접근 할 수 없습니다.
 String hello="Hello World";
    void printHello()
    {
        System.out.println(hello);
    }
    printHello();

    다음 이상 이 나타 납 니 다:
Exception thrown
    groovy.lang.MissingPropertyException: No such property: hello for class: ConsoleScript6
   at ConsoleScript6.printHello(ConsoleScript6:4)
   at ConsoleScript6.run(ConsoleScript6:6)

    하지만 String 을 제거 하면 Hello World 를 정상적으로 출력 할 수 있 습 니 다.
(3)목록 과 맵 문법
    Groovy 의 목록 과 매 핑 은 자바 Array List 와 LinkedHashMap 에 의 해 이 루어 집 니 다.
    Groovy 는 괄호[]로 목록 구 조 를 지정 하고 사용 합 니 다.
jvmLanguages=["Java","Groovy","Scala","Clojure"];
println(jvmLanguages[0]);
println(jvmLanguages.size());
println(jvmLanguages[0..2])
println(jvmLanguages[-1])
jvmLanguages=[];
println(jvmLanguages);

    출력:
Java
4
[Java, Groovy, Scala]
Clojure
[]
Groory 는 동적 형식 언어 이기 때문에 서로 다른 유형의 것 을 목록 과 맵 에 만 저장 할 수 있 습 니 다.
 jvmLanguages=["Java",2,"Scala",new Date()];
 println(jvmLanguages);

    출력:
[Java, 2, Scala, Mon Jan 05 14:22:22 CST 2015]

    Groovy 처리 맵 도 차이 가 많 지 않 습 니 다.[]기 호 를 사용 하고 콜론(:)으로 키 쌍 을 나 누 어 맵.키(map.key)로 맵 의 값 을 참조 합 니 다.
    
languageRatings=[Java:100,Groovy:99,Clojure:"null"];
println(languageRatings["Java"]);
println(languageRatings.Clojure)
languageRatings["Clojure"]=75;
println(languageRatings["Clojure"]);
println(languageRatings);
languageRatings=[:];
println(languageRatings);

    출력:
100
null
75
[Java:100, Groovy:99, Clojure:75]
[:]

   4.자바 와 의 차이
    (1)Groovy 는 생략 할 수 있 는 문법 이 많다.
     문장 끝 에 있 는 분점;
    반환 문(return);
    방법 매개 변수 양쪽 괄호;
    Public 접근 제한 문자..
 Demo demo=new Demo();
println(demo.doSomething());
public class Demo
{
     public Integer doSomething()
     {
          def x=1
          def y;def String z="Hello World"
          println "the doSomething method be invoked!"
          x=5
      }
}

    출력:
the doSomething method be invoked!
5
   위 코드 에 있 는 Public 를 모두 제거 하면 출력 은 같 습 니 다.
   (2)예외 처리
    Groovy 는 검사 이상 과 검사 이상 을 구분 하지 않 습 니 다.Groovy 컴 파일 러 는 서명 방법 에 있 는 모든 throws 문 구 를 무시 합 니 다.
    (3)같은 조작 부호
    최소 이외 의 원칙 에 따라 Groovy 는==을 자바 의 equals()방법 으로 여 긴 다.
    
Integer x=new Integer(2);
    Integer y=new Integer(2);
    Integer z=null;
    if(x==y)
    {
        println "x==y"
    }
    if(!x.is(y))
    {
        println "x is not y"
    }
    if(z.is(null))
    {
        println "z is null"
    }
    if(z==null)
    {
        println "z is null"
    }
 
 출력:
x==y
x is not y
z is null
z is null

(4)내부 클래스
  Groovy 는 내부 클래스 를 지원 하지만 대부분의 경우 편지 숫자 액면가 로 대체 해 야 합 니 다.

좋은 웹페이지 즐겨찾기