微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

二.Groovy的介绍

一.Groovy的基本语法编写
1.打开IntelliJ IDEA,新建项目,现在Gradle项目,选择java项目。
2.填写GroupId和ArtifactId和version
3.勾选Use auto-import(自动下载导入依赖),Use local gradle distribution(使用本地Gradle),并选择Gradle的安装目录
4.填写project name和project location
5.完成项目创建

二.编写Groovy语言
1.点击Tools-Groovy Console,在左侧编写Groovy语言,点击运行按钮,即可在Run窗口看到运行结果
2.编写Groovy语言:

/** * groovy语言 1.Groovy完全兼容java语法,在Groovy里面编写的java语法可以执行,两者都运行在jvm上。Groovy最终会被编译成java编译后一样的字节码  2.分号是可选的  3.类,方法认是public的  4.编译器会自动为Groovy的属性添加getter/setter方法  5.属性可以直接使用.号获取  6.方法中最后一个表达式的值会作为返回值  7.==同等于equals,使用时不会有NullpointerExceptions 8.括号是可选的 */
//用java语法定义bean(版本类)
//3.类,方法认是public的
public class ProjectVersion{
// 2.分号是可选的
    //小版本
    private int small
    //大版本
    private int big

    //构造方法(初始化大小版本)
    public ProjectVersion(int small,int big){
        this.small=small
        this.big=big
    }

    int getSmall() {
// return small
// 6.方法中最后一个表达式的值会作为返回值
            small
    }

    void setSmall(int small) {
        this.small = small
    }
// 4.编译器会自动为Groovy的属性添加getter/setter方法
// int getBig() {
// return big
// }
//
// void setBig(int big) {
// this.big = big
// }
}

//使用bean
ProjectVersion projectVersion1 = new ProjectVersion(1,2)
//5.属性可以直接使用.号获取
//8.括号是可选的
println projectVersion1.big

//7.==同等于equals,使用时不会有NullpointerExceptions
ProjectVersion projectVersion2 = null
projectVersion2==projectVersion1

3.Groovy的高级特性

//groovy的高级特性(类似javascript)
//1.自动类型定义
def version = 1//根据值定义类型,相当于js的var

//2.assert语句
//assert version == 2//false

//3.括号是可选的
println version

//4.字符串可以使用单引号,双引号,三引号
def s1='tiglle'  //普通字符串形式
def s2="tiglle version is ${version}" //双引号可以在里面使用${变量}的形式使用变量
def s3='''字符串可以换行,
并且结果
也是
换行效果保存''' //三引号的字符串可以任意换行
//打印上面的效果
println s1
println s2
println s3

//4.集合api
//1.list
//定义一个ArrayList
def nameList = ['xiaoming','xiaohong']
//向list添加数据
nameList << 'xiaowang'
assert nameList.getClass() == ArrayList
assert nameList.size() == 3

//2.map
//定义一个HashMap
def persionMap = ['name':'xiaoming','age':20]
//向map添加数据
persionMap.sex = 'man'
//使用map
println persionMap.sex
println persionMap['name']
println persionMap.getClass()

//6.闭包
//1.包含参数的闭包
def bibao1 = {
    //参数
    v ->
        println v
}
//2.不包含参数的闭包
def bibao2 = {
    println 'tiglle'
}
//通过方法使用闭包
//1.闭包1的方法:将方法作为参数
def function1(Closure closure){
    //调用传参
    closure('param')
}
//2.闭包2的方法:将方法作为参数
def function2(Closure closure){
    //调用
    closure()
}
//使用方法
function1(bibao1)
function1(bibao2)

4.项目的Groovy脚本阅读

//为什么要学习groovy,就是为了看懂和编写简单的Gradle的由groovy语言编写的构建脚本
//groovy的构建脚本详解

//每个Gradle的构建脚本都对应一个Project实例(项目),脚本的所有代码认作用域都是Project范围
//apply:Project的某个方法
//plugin:'java'定义plugin变量,值为'java',向js对象变量定义
apply plugin:'java'

//Project的version属性,值为0.1
version = '0.1'

//定义的闭包
repositories {
    mavenCentral()
}

dependencies {
    compile 'commons-codec:commons-codec:1.6'
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐