Groovyの学習記録01

GroovyのApiドキュメント

1. Groovyとは何ですか?

2つ、GroovyとJavaの比較

(1)GroovyはJava構文と完全に互換性があります。つまり、GroovyでJavaコードを記述するために実行可能です。どちらもJVMに基づいているため、Groovyは最終的にjavaバイトコードにコンパイルされます
(2)コード行の最後のセミコロンはオプションです
(3)クラスとメソッドはデフォルトでパブリックです
(4)コンパイラは属性を提供します自動的にgetter /を追加しますセッターメソッド
(5)属性はドットで取得できます
(6)メソッドの最後の式の値が戻り値として使用されます。つまり、メソッドに戻り値がある場合は、returnキーワードを省略できます
( 7)==はequals()と同等であり、NullPointerExceptionsはありませんが、nullオブジェクトを直接使用してプロパティまたはメソッドを呼び出すと、nullポインター例外が報告されます。

3つの高効率特性

(1)自己完結型のassertステートメント、つまりassertステートメント
(2)オプションの型定義、変数が「def変数名」を使用できることを確認し、変数の特定の型は次の操作に従って推定されます
(3)オプションの括弧、 callメソッドパラメータがある場合、括弧は省略できます
(4)文字列Groovy文字列には3つの式があります:一重引用符、二重引用符、3つの一重引用符
(5)コレクションAPI、Groovyのリストとマップはより効率的な表現です
(6)閉鎖をサポート

第4に、IDEAを使用してGradleプロジェクトを構築します

4.1プロジェクトを作成する手順

4.2Groovyコンソールコントローラーを開く

5、Groovy言語機能テスト

5.1Groovy言語の機能テスト用

public class ProjectVersion {
    private int major;
    private int minor; //没有给minor添加set/get方法

    ProjectVersion(int major, int minor) {
        this.major = major  //语句末尾没有分号,成功编译执行
        this.minor = minor
    }

    int getMajor() {
        major //最后一个表达式作为返回值
    }

    void setMajor(int major) {
        this.major = major
    }

}

ProjectVersion v1 = new ProjectVersion(2, 1);
println v1.major; //打印成功
println v1.minor; //打印成功

ProjectVersion v2 = null;
println v2==v1  //false,未报空指针异常
println v2.minor //报空指针异常

5.2Groovy言語2の機能テスト用

//Groovy的高效特性
//1 可选的类型定义
def version = 1;

//2 assert断言
//assert version == 2;

//3 括号是可选的
println version

//4 字符串
def s1 = 'groovy';

def s2 = "gradle version is ${version}"

def s3 = '''gradle
is
good tools'''

println s1
println s2
println s3

//5 集合
//list
def buildTools = ['ant', 'maven'];
buildTools << 'gradle'
assert buildTools.getClass() == ArrayList
assert buildTools.size() == 3

//map
def buildMap = ["ant": "第一代工具", "maven": '第二代工具'];
buildMap.gradle="第三代工具";

println buildMap.size();
println buildMap
println buildMap.ant
println buildMap.getClass() //LinkedHashMap

//6 闭包
def c1={
    v->println v
}

def  c2={
    println 'hello'
}

//这里的Closure不能导包,它是Groovy自带的
def method1(Closure closure){
    closure('有参数')
}

def method2(Closure closure){
    closure()
}

method1(c1)
method2(c2)

おすすめ

転載: blog.csdn.net/Duckdan/article/details/109550840