Groovy——基本语法说明

基本语法说明

1、Groovy是基于Java语言的,所以完全兼容Java语法,可作为面向对象编程语言[定义类],也可作为脚本型语言[文件定义中不出现类]

2、在一个Groovy文件中,可以混合类的定义和脚本定义,此时不要再定义与文件名相同的类

3、Groovy中建议使用def定义变量、方法返回值,不建议使用具体的数据类型

4、Groovy中的注释,单行注释//,多行注释/**/

5、Groovy中语句末尾的分号可以省略,用换行来代替

6、默认类、方法、字段都是用public修饰的

7、对象的属性操作

在这里插入图片描述

8、方法

在这里插入图片描述

9、支持顺序结构、分支结构、循环结构的语句

10、支持各种运算符:算术、关系、位、赋值、范围

11、基本类型也是对象,可以执行对象的方法,Groovy中的字符串有单引号、双引号、三引号

在这里插入图片描述

12、数据类型:变量、属性、方法、闭包的参数以及方法的返回值的类型都是可有可无的,都是在变量赋值的时候才决定他的类型

在这里插入图片描述

13、Groovy常见注意点

  • 1、类定义使用
package com.gykalc.demo

class Demo01BasicNotice {
    /*
     * 1、Groovy中使用def定义属性、方法,def支持动态类型声明
     * 2、单行注释:// 多行注释:
     * 3、Groovy语句最后的分号是可以省略的
     * 4、Groovy可以为属性自动生成Getter、Setter方法
     * 5、方法声明时:参数类型、返回值类型、return关键字可以省略,方法调用时,在不引起歧义的情况下,可以省略()
     * 6、变量引用时:在不引起歧义的前提下{}可以省略,在容易引起歧义的地方就不能省略
     * 7、对象属性赋值:
     *      方式一:对象.属性名=
     *      方式二:对象["属性名"]=
     *      方式三:对象.属性的Setter方法()
     *      方式四:具名构造器
     * 8、读取属性值:
     *      方式一:对象.属性名
     *      方式二:对象["属性名"]
     *      方式三:对象.属性的Getter方法()
     */
    def bookName = "斗破苍穹"
    def price = 19.9

    def sale(bookName, price) {
        println("The book is 《${bookName}》,price is $price")
    }

    def sum(price1, price2) {
        println("""
            price1 = $price1
            price2 = $price2
            sum(price1, price2) = ${price1 + price2}""")
    }
}

  • 2、脚本式使用
package com.gykalc.demo

def demo01BasicNotice = new Demo01BasicNotice()
demo01BasicNotice.sale(demo01BasicNotice["bookName"], demo01BasicNotice.price)
demo01BasicNotice.sum(demo01BasicNotice["price"], 39.9)

14、Groovy中四种引号生成的字符串

package com.gykalc.demo

def desc = '测试'
def str1 = '单引号,不支持变量引用,不支持换行操作${desc}'
def str2 = "双引号,支持变量引用,不支持换行操作${desc}"
def str3 = '''三引号,不支持变量引用,支持换
行操作${desc}
'''
def str4 = """双三引号,支持变量引用,支持换行
${desc}"""
println(str1)
println(str2)
println(str3)
println(str4)

// 基本数据类型也可以作为对象使用,可以调用对象的方法
println(str1.getClass().getName())
println(str2.getClass().getName())
println(str3.getClass().getName())
println(str4.getClass().getName())

在这里插入图片描述

15、Groovy中对集合的操作

package com.gykalc.demo

//===========================list集合操作==============================

def list = [1, 3, 5, 7]

// 类型断言,如果list不是List对象,则报错
assert list instanceof List
list.add(9)
println(list)

def list2 = [2, 4, 6, 8]
// 使用+或list.plus(list2)来合并集合
def listPlus = list + list2
println(list)
println(list2)
println(listPlus)

// 删除下标为2的元素
listPlus.remove(2)
println(listPlus)
// 移除指定的元素3
listPlus.removeElement(3)
println(listPlus)
// 将元素1,从listPlus中移除,如果不存在,则不移除
listPlus = listPlus - 1
println(listPlus)
// 将元素2,从listPlus中移除,如果不存在,则不移除
listPlus = listPlus - 2
println(listPlus)
// 从listPlus中将list中的所有元素删除
listPlus = listPlus - list
println(listPlus)
// 集合的遍历
listPlus.each {
    def item ->
        {
            println("遍历的数据为:${item}")
        }
}

//===========================map操作==============================
def map = [J: "Java", "K": "Kotlin", 'G': "Groovy"]
//===========================map增操作==============================
map.put("P", "Python")
println(map)
//===========================map删操作==============================
map.remove("P")
map.remove("J", "Java")
println(map)
//===========================map改操作==============================
map -= [K: "Kotlin"]
println(map)
map += [G: "Gradle"]
println(map)
//===========================map查操作==============================
map.each { println("遍历的map的value=$it.value") }

16、类导入与异常处理

package com.gykalc.demo

import java.text.SimpleDateFormat

def sdf = new SimpleDateFormat("yyyy-MM-dd HH:ss:mm")
def dateFormat = sdf.format(new Date())
println(dateFormat)
// 异常处理与java一致
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值